@@ -54,6 +54,35 @@ def test_parse_own_packet_question(self):
5454 generated .add_question (r .DNSQuestion ("testname.local." , const ._TYPE_SRV , const ._CLASS_IN ))
5555 r .DNSIncoming (generated .packets ()[0 ])
5656
57+ def test_parse_own_packet_nsec (self ):
58+ answer = r .DNSNsec (
59+ 'eufy HomeBase2-2464._hap._tcp.local.' ,
60+ const ._TYPE_NSEC ,
61+ const ._CLASS_IN | const ._CLASS_UNIQUE ,
62+ const ._DNS_OTHER_TTL ,
63+ 'eufy HomeBase2-2464._hap._tcp.local.' ,
64+ [const ._TYPE_TXT , const ._TYPE_SRV ],
65+ )
66+
67+ generated = r .DNSOutgoing (const ._FLAGS_QR_RESPONSE )
68+ generated .add_answer_at_time (answer , 0 )
69+ parsed = r .DNSIncoming (generated .packets ()[0 ])
70+ assert answer in parsed .answers
71+
72+ # Types > 255 should be ignored
73+ answer_invalid_types = r .DNSNsec (
74+ 'eufy HomeBase2-2464._hap._tcp.local.' ,
75+ const ._TYPE_NSEC ,
76+ const ._CLASS_IN | const ._CLASS_UNIQUE ,
77+ const ._DNS_OTHER_TTL ,
78+ 'eufy HomeBase2-2464._hap._tcp.local.' ,
79+ [const ._TYPE_TXT , const ._TYPE_SRV , 1000 ],
80+ )
81+ generated = r .DNSOutgoing (const ._FLAGS_QR_RESPONSE )
82+ generated .add_answer_at_time (answer_invalid_types , 0 )
83+ parsed = r .DNSIncoming (generated .packets ()[0 ])
84+ assert answer in parsed .answers
85+
5786 def test_parse_own_packet_response (self ):
5887 generated = r .DNSOutgoing (const ._FLAGS_QR_RESPONSE )
5988 generated .add_answer_at_time (
0 commit comments