basic testing framework
This commit is contained in:
85
tests/unit/test_02_api.py
Normal file
85
tests/unit/test_02_api.py
Normal file
@ -0,0 +1,85 @@
|
||||
#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)
|
Reference in New Issue
Block a user