Skip to content

Commit 6ef65fc

Browse files
authored
Add test coverage for duplicate properties in a TXT record (#865)
1 parent c64064a commit 6ef65fc

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

tests/services/test_info.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,41 @@ def get_service_info_helper(zc, type, name):
441441
zc.remove_all_service_listeners()
442442
zc.close()
443443

444+
def test_service_info_duplicate_properties_txt_records(self):
445+
"""Verify the first property is always used when there are duplicates in a txt record."""
446+
447+
zc = r.Zeroconf(interfaces=['127.0.0.1'])
448+
desc = {'path': '/~paulsm/'}
449+
service_name = 'name._type._tcp.local.'
450+
service_type = '_type._tcp.local.'
451+
service_server = 'ash-1.local.'
452+
service_address = socket.inet_aton("10.0.1.2")
453+
ttl = 120
454+
now = r.current_time_millis()
455+
info = ServiceInfo(
456+
service_type, service_name, 22, 0, 0, desc, service_server, addresses=[service_address]
457+
)
458+
info.async_update_records(
459+
zc,
460+
now,
461+
[
462+
r.RecordUpdate(
463+
r.DNSText(
464+
service_name,
465+
const._TYPE_TXT,
466+
const._CLASS_IN | const._CLASS_UNIQUE,
467+
ttl,
468+
b'\x04ff=0\x04ci=2\x04sf=0\x0bsh=6fLM5A==\x04dd=0\x04jl=2\x04qq=0\x0brr=6fLM5A==\x04ci=3',
469+
),
470+
None,
471+
)
472+
],
473+
)
474+
assert info.properties[b"dd"] == b"0"
475+
assert info.properties[b"jl"] == b"2"
476+
assert info.properties[b"ci"] == b"2"
477+
zc.close()
478+
444479

445480
def test_multiple_addresses():
446481
type_ = "_http._tcp.local."

0 commit comments

Comments
 (0)