#import pytest from pdnsapi import PdnsRestAdapter import dns.resolver import dns.nameserver import datetime global api global domain global resolv def setup_api(): global api, domain server = "localhost:8081" apikey = "pdns-supersecret" api = PdnsRestAdapter(server, apikey) domain = 'test1.nhn.no' assert api is not None def setup_resolver(): global resolv resolv = dns.resolver.Resolver() assert resolv is not None resolv.nameservers = [dns.nameserver.Do53Nameserver('127.0.0.1', 10053)] answer = resolv.resolve(domain, 'SOA') assert answer is not None def test_api_get_servers(): global api setup_api() result = api.get('servers') assert type(result) is list assert result[0]['daemon_type'] == 'authoritative' print() print(f"{result=}") def test_api_get_testzone(): global api, domain setup_api() result = api.get('servers/localhost/zones/' + domain) assert type(result) is dict assert result['name'] == domain + '.' def test_api_CRUD_TXT(): global api, domain setup_api() # Create data = { "rrsets": [ { "name": "testcrud.test1.nhn.no.", "type": "TXT", "ttl": 60, "changetype": "REPLACE", "records": [ { "content": f'"testing CRUD {datetime.datetime.now().strftime('%d.%m.%Y %H:%M')}"', "disabled": False, "name": "testcrud.test1.nhn.no", "ttl": 60, "type": "TXT" } ] } ] } result = api.patch('servers/localhost/zones/' + domain, {}, data) assert type(result) is type(None) # assert result == 201 result = api.get('servers/localhost/zones/' + domain) print(f"{result=}") # assert result["rrset"][0]["records"][0]["type"] == "TXT" assert type(result) is dict data["rrsets"][0]["records"][0]["content"] = '"testing CRUD (update)"' result = api.patch('servers/localhost/zones/' + domain, {}, data) assert type(result) is type(None) data["rrsets"][0]["changetype"] = "DELETE" result = api.patch('servers/localhost/zones/' + domain, {}, data) assert type(result) is type(None)