@@ -1332,3 +1332,48 @@ def test_serviceinfo_address_updates():
13321332 )
13331333 info_service .addresses = [socket .inet_aton ("10.0.1.3" )]
13341334 assert info_service .addresses == [socket .inet_aton ("10.0.1.3" )]
1335+
1336+
1337+ def test_serviceinfo_accepts_bytes_or_string_dict ():
1338+ """Verify a bytes or string dict can be passed to ServiceInfo."""
1339+ type_ = "_homeassistant._tcp.local."
1340+ name = "MyTestHome"
1341+ addresses = [socket .inet_aton ("10.0.1.2" )]
1342+ server_name = "ash-2.local."
1343+ info_service = ServiceInfo (
1344+ type_ , '%s.%s' % (name , type_ ), 80 , 0 , 0 , {b'path' : b'/~paulsm/' }, server_name , addresses = addresses
1345+ )
1346+ assert info_service .dns_text ().text == b'\x0e path=/~paulsm/'
1347+ info_service = ServiceInfo (
1348+ type_ ,
1349+ '%s.%s' % (name , type_ ),
1350+ 80 ,
1351+ 0 ,
1352+ 0 ,
1353+ {'path' : '/~paulsm/' },
1354+ server_name ,
1355+ addresses = addresses ,
1356+ )
1357+ assert info_service .dns_text ().text == b'\x0e path=/~paulsm/'
1358+ info_service = ServiceInfo (
1359+ type_ ,
1360+ '%s.%s' % (name , type_ ),
1361+ 80 ,
1362+ 0 ,
1363+ 0 ,
1364+ {b'path' : '/~paulsm/' },
1365+ server_name ,
1366+ addresses = addresses ,
1367+ )
1368+ assert info_service .dns_text ().text == b'\x0e path=/~paulsm/'
1369+ info_service = ServiceInfo (
1370+ type_ ,
1371+ '%s.%s' % (name , type_ ),
1372+ 80 ,
1373+ 0 ,
1374+ 0 ,
1375+ {'path' : b'/~paulsm/' },
1376+ server_name ,
1377+ addresses = addresses ,
1378+ )
1379+ assert info_service .dns_text ().text == b'\x0e path=/~paulsm/'
0 commit comments