start of mid-level operations (get record, write record, update record, delete record)

This commit is contained in:
2025-05-15 11:21:55 +02:00
parent f6e27de5a5
commit fa12bd3243
2 changed files with 51 additions and 0 deletions

View File

@ -49,3 +49,15 @@ class PdnsRestAdapter:
# if response.status.code >= 200 and response.status.code <= 299:
# return
# raise Exception(data_out['message']) # TODO: raise custom exception later
def get_record(self, name=None, type=None):
domain = '.'.join(name.split('.')[1:])
if name[:-1] != '.':
name += '.'
result = self.get('servers/localhost/zones/' + domain)
record = None
for r in result["rrsets"]:
if r['name'] == name and r['type'] == type:
rrset = r
print(f"PdnsRestAdapter::get_record(): {rrset=}")
return rrset

39
tests/unit/test_03_mid.py Normal file
View File

@ -0,0 +1,39 @@
#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_mid_get_record():
global api
setup_api()
output = api.get_record('test.test1.nhn.no', 'TXT')
print(f"{output=}")
assert type(output) is dict
assert output['name'] == 'test.test1.nhn.no.'
assert output['type'] == 'TXT'