feat(mdns): Console test for changing TXT records

This commit is contained in:
David Cermak
2024-07-22 13:46:37 +02:00
parent 43de7e5c4d
commit 6b9a6ce65b
2 changed files with 20 additions and 3 deletions

View File

@ -85,14 +85,16 @@ class DnsPythonWrapper:
answers.append(full_answer)
return answers
def check_record(self, name, query_type, expected=True):
def check_record(self, name, query_type, expected=True, expect=None):
output = self.run_query(name, query_type=query_type)
answers = self.parse_answer_section(output, query_type)
logger.info(f'answers: {answers}')
if expect is None:
expect = name
if expected:
assert any(name in answer for answer in answers), f"Expected service '{name}' not found in answer section"
assert any(expect in answer for answer in answers), f"Expected record '{expect}' not found in answer section"
else:
assert not any(name in answer for answer in answers), f"Unexpected service '{name}' found in answer section"
assert not any(expect in answer for answer in answers), f"Unexpected record '{expect}' found in answer section"
if __name__ == '__main__':

View File

@ -104,5 +104,20 @@ def test_remove_delegated_service(mdns_console, dig_app):
dig_app.check_record('_test2._tcp.local', query_type='PTR', expected=False)
def test_update_txt(mdns_console, dig_app):
mdns_console.send_input('mdns_service_txt_set _test _tcp key1 value1')
dig_app.check_record('local._test._tcp.local', query_type='SRV', expected=True)
dig_app.check_record('_test._tcp.local', query_type='TXT', expected=True, expect='key1=value1')
mdns_console.send_input('mdns_service_txt_set _test _tcp key2 value2')
dig_app.check_record('_test._tcp.local', query_type='TXT', expected=True, expect='key2=value2')
mdns_console.send_input('mdns_service_txt_remove _test _tcp key2')
dig_app.check_record('_test._tcp.local', query_type='TXT', expected=False, expect='key2=value2')
dig_app.check_record('_test._tcp.local', query_type='TXT', expected=True, expect='key1=value1')
mdns_console.send_input('mdns_service_txt_replace _test _tcp key3=value3 key4=value4')
dig_app.check_record('_test._tcp.local', query_type='TXT', expected=False, expect='key1=value1')
dig_app.check_record('_test._tcp.local', query_type='TXT', expected=True, expect='key3=value3')
dig_app.check_record('_test._tcp.local', query_type='TXT', expected=True, expect='key4=value4')
if __name__ == '__main__':
pytest.main(['-s', 'test_mdns.py'])