onedns/onedns/tests/test_zone.py

62 lines
2.0 KiB
Python

import pytest
import dnslib
from IPy import IP
from onedns import exception
from onedns.tests import conftest
def test_zone_clear(onezone):
assert onezone._forward
assert onezone._reverse
onezone.clear()
assert not onezone._forward
assert not onezone._reverse
def test_add_host(onezone):
onezone.clear()
with pytest.raises(exception.RecordDoesNotExist):
onezone._get_forward(conftest.HOST_SHORT, conftest.HOST_IP)
with pytest.raises(exception.RecordDoesNotExist):
onezone._get_reverse(conftest.HOST_IP, conftest.HOST_SHORT)
onezone.add_host(conftest.HOST_SHORT, conftest.HOST_IP)
assert onezone._get_forward(conftest.HOST_SHORT, conftest.HOST_IP)
assert onezone._get_reverse(conftest.HOST_IP, conftest.HOST_SHORT)
def test_remove_host(onezone):
onezone.clear()
onezone.add_host(conftest.HOST_SHORT, conftest.HOST_IP)
assert onezone._get_forward(conftest.HOST_SHORT, conftest.HOST_IP)
assert onezone._get_reverse(conftest.HOST_IP, conftest.HOST_SHORT)
onezone.remove_host(conftest.HOST_SHORT, conftest.HOST_IP)
with pytest.raises(exception.RecordDoesNotExist):
onezone._get_forward(conftest.HOST_SHORT, conftest.HOST_IP)
with pytest.raises(exception.RecordDoesNotExist):
onezone._get_reverse(conftest.HOST_IP, conftest.HOST_SHORT)
@pytest.mark.parametrize("host", conftest.TEST_GET_FORWARD_DATA)
def test_get_forward(onezone, host):
forward = onezone.get_forward(host)
fqdn = conftest.HOST + '.'
assert isinstance(forward, dnslib.RR)
assert forward.rname == fqdn
assert forward.rtype == dnslib.QTYPE.A
assert forward.rclass == dnslib.CLASS.IN
assert str(forward.rdata) == conftest.HOST_IP
def test_get_reverse(onezone):
reverse = onezone.get_reverse(conftest.HOST_IP)
fqdn = conftest.HOST + '.'
revip = IP(conftest.HOST_IP).reverseName()
assert isinstance(reverse, dnslib.RR)
assert reverse.rname == revip
assert reverse.rtype == dnslib.QTYPE.PTR
assert reverse.rclass == dnslib.CLASS.IN
assert str(reverse.rdata) == fqdn