There was an error while loading. Please reload this page.
1 parent aba2858 commit 8e3adf8Copy full SHA for 8e3adf8
2 files changed
zeroconf/__init__.py
@@ -1646,20 +1646,12 @@ def _set_properties(self, properties: Union[bytes, Dict]) -> None:
1646
if isinstance(key, str):
1647
key = key.encode('utf-8')
1648
1649
- if value is None:
1650
- suffix = b''
1651
- elif isinstance(value, str):
1652
- suffix = value.encode('utf-8')
1653
- elif isinstance(value, bytes):
1654
- suffix = value
1655
- elif isinstance(value, int):
1656
- if value:
1657
- suffix = b'true'
1658
- else:
1659
- suffix = b'false'
1660
1661
1662
- list_.append(b'='.join((key, suffix)))
+ record = key
+ if value is not None:
+ if not isinstance(value, bytes):
+ value = str(value).encode('utf-8')
+ record += b'=' + value
+ list_.append(record)
1663
for item in list_:
1664
result = b''.join((result, int2byte(len(item)), item))
1665
self.text = result
@@ -1682,16 +1674,11 @@ def _set_text(self, text: bytes) -> None:
1682
1674
for s in strs:
1683
1675
parts = s.split(b'=', 1)
1684
1676
try:
1685
- key, value = parts # type: Tuple[bytes, Union[bool, bytes]]
1677
+ key, value = parts # type: Tuple[bytes, Optional[bytes]]
1686
1678
except ValueError:
1687
1679
# No equals sign at all
1688
1680
key = s
1689
- value = False
1690
1691
- if value == b'true':
1692
- value = True
1693
- elif value == b'false' or not value:
1694
1681
+ value = None
1695
1696
# Only update non-existent properties
1697
if key and result.get(key) is None:
zeroconf/test.py
@@ -1009,19 +1009,19 @@ def update_service(self, zeroconf, type, name):
1009
# get service info without answer cache
1010
info = zeroconf_browser.get_service_info(type_, registration_name)
1011
assert info is not None
1012
- assert info.properties[b'prop_none'] is False
+ assert info.properties[b'prop_none'] is None
1013
assert info.properties[b'prop_string'] == properties['prop_string']
1014
- assert info.properties[b'prop_float'] is False
+ assert info.properties[b'prop_float'] == b'1.0'
1015
assert info.properties[b'prop_blank'] == properties['prop_blank']
1016
- assert info.properties[b'prop_true'] is True
1017
- assert info.properties[b'prop_false'] is False
+ assert info.properties[b'prop_true'] == b'1'
+ assert info.properties[b'prop_false'] == b'0'
1018
assert info.addresses == addresses[:1] # no V6 by default
1019
all_addresses = info.addresses_by_version(r.IPVersion.All)
1020
assert all_addresses == addresses, all_addresses
1021
1022
info = zeroconf_browser.get_service_info(subtype, registration_name)
1023
1024
1025
1026
# test TXT record update
1027
sublistener = MySubListener()
0 commit comments