onedns/onedns/tests/conftest.py

80 lines
1.7 KiB
Python

import pytest
import dnslib
from IPy import IP
from onedns import zone
from onedns import server
from onedns import resolver
from onedns.tests import vcr
from onedns.clients import one
DOMAIN = 'onedns.test'
INTERFACE = '127.0.0.1'
PORT = 9053
HOST_SHORT = 'testhost'
HOST = '.'.join([HOST_SHORT, DOMAIN])
HOST_IP = '10.242.118.112'
TEST_LOOKUP_DATA = [
(HOST, dnslib.QTYPE.A, HOST_IP),
(IP(HOST_IP).reverseName(), dnslib.QTYPE.PTR, HOST + '.')
]
TEST_GET_FQDN_DATA = [
('hostwithnodot', '192.168.1.23'),
('hostwithdot.', '192.168.1.19'),
]
TEST_GET_FORWARD_DATA = [
HOST_SHORT,
HOST_SHORT + '.',
HOST,
HOST + '.',
]
TEST_FQDN_DATA = [
(HOST_SHORT, DOMAIN),
(HOST_SHORT + '.', DOMAIN),
(HOST_SHORT, DOMAIN + '.'),
(HOST_SHORT + '.', DOMAIN + '.'),
(HOST, DOMAIN),
]
TEST_FQDN_RESULT = HOST + '.'
@pytest.fixture(scope="function")
def dns(request):
dns = resolver.DynamicResolver(domain=DOMAIN)
dns.start(dns_address=INTERFACE, dns_port=PORT, tcp=True)
request.addfinalizer(dns.close)
return dns
@pytest.fixture(scope="function")
def one_dns(request, oneclient):
dns = server.OneDNS(domain=DOMAIN)
dns._one = oneclient
dns.start(dns_address=INTERFACE, dns_port=PORT, tcp=True)
request.addfinalizer(dns.close)
return dns
@pytest.fixture(scope="function")
def oneclient():
"""
NOTE: All fixtures must be function scope to work with VCRPY cassettes
"""
return one.OneClient()
@pytest.fixture(scope="function")
@vcr.use_cassette()
def vms(oneclient):
return oneclient.vms()
@pytest.fixture(scope="function")
def onezone():
z = zone.Zone(DOMAIN)
z.add_host(HOST_SHORT, HOST_IP)
for name, ip in TEST_GET_FQDN_DATA:
z.add_host(name, ip)
return z