def test_parse_with_port_and_address(): service_params = ("_abc._tcp.local", "service", ["10.0.0.1"], 123, {}) message = dns_utils.add_service(dns.DnsMessage(), *service_params) parsed = mdns.parse_services(message) assert len(parsed) == 1 dns_utils.assert_service(parsed[0], *service_params)
def test_parse_single_service(): service_params = ("_abc._tcp.local", "service", ["10.0.10.1"], 123, {"foo": "bar"}) message = dns_utils.add_service(dns.DnsMessage(), *service_params) parsed = mdns.parse_services(message) assert len(parsed) == 1 dns_utils.assert_service(parsed[0], *service_params)
def test_parse_with_name_and_type(): service_params = ("_abc._tcp.local", "service", [], 0, {}) message = dns_utils.add_service(dns.DnsMessage(), *service_params) parsed = mdns.parse_services(message) assert len(parsed) == 1 dns_utils.assert_service(parsed[0], *service_params)
def test_parse_properties_converts_keys_to_lower_case(): service_params = ("_abc._tcp.local", "service", [], 0, {"FOO": "bar", "Bar": "FOO"}) message = dns_utils.add_service(dns.DnsMessage(), *service_params) parsed = mdns.parse_services(message) assert len(parsed) == 1 assert parsed[0].properties["foo"] == "bar" assert parsed[0].properties["Bar"] == "FOO"
def test_parse_ignore_link_local_address(): service_params = ( "_abc._tcp.local", "service", ["169.254.1.1"], 123, {"foo": "bar"}, ) message = dns_utils.add_service(dns.DnsMessage(), *service_params) parsed = mdns.parse_services(message) assert len(parsed) == 1 assert parsed[0].address is None
def test_parse_pick_one_available_address(): addresses = ["10.0.10.1", "10.0.10.2"] service_params = ( "_abc._tcp.local", "service", addresses, 123, {"foo": "bar"}, ) message = dns_utils.add_service(dns.DnsMessage(), *service_params) parsed = mdns.parse_services(message) assert len(parsed) == 1 assert str(parsed[0].address) in addresses
def test_parse_double_service(): service1_params = ("_abc._tcp.local", "service1", "10.0.10.1", 123, {"foo": "bar"}) service2_params = ( "_def._tcp.local", "service2", "10.0.10.2", 456, {"fizz": "buzz"}, ) message = dns_utils.add_service(mdns.DnsMessage(), *service1_params) message = dns_utils.add_service(message, *service2_params) parsed = mdns.parse_services(message) assert len(parsed) == 2 dns_utils.assert_service(parsed[0], *service1_params) dns_utils.assert_service(parsed[1], *service2_params)
def test_parse_no_service_name(): service_params = ("_abc._tcp.local", None, [], 0, {}) message = dns_utils.add_service(dns.DnsMessage(), *service_params) parsed = mdns.parse_services(message) assert len(parsed) == 0
def test_parse_no_service_type(): service_params = (None, "service", [], 0, {}) message = dns_utils.add_service(dns.DnsMessage(), *service_params) parsed = mdns.parse_services(message) assert len(parsed) == 0
def test_parse_empty_service(): assert mdns.parse_services(dns.DnsMessage()) == []