2016-08-02 18:19:19 +03:00
|
|
|
import pytest
|
2016-08-17 17:13:43 +03:00
|
|
|
import dnslib
|
|
|
|
from IPy import IP
|
2016-08-02 18:19:19 +03:00
|
|
|
|
2016-08-17 17:13:43 +03:00
|
|
|
from onedns import zone
|
2016-09-28 18:35:07 +03:00
|
|
|
from onedns import server
|
2016-08-02 19:39:02 +03:00
|
|
|
from onedns import resolver
|
2016-08-12 18:24:52 +03:00
|
|
|
from onedns.tests import vcr
|
2016-08-03 01:06:35 +03:00
|
|
|
from onedns.clients import one
|
2016-08-02 18:19:19 +03:00
|
|
|
|
|
|
|
|
|
|
|
DOMAIN = 'onedns.test'
|
|
|
|
INTERFACE = '127.0.0.1'
|
|
|
|
PORT = 9053
|
2016-08-17 17:13:43 +03:00
|
|
|
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 + '.',
|
|
|
|
]
|
2016-10-06 06:34:55 +03:00
|
|
|
TEST_FQDN_DATA = [
|
|
|
|
(HOST_SHORT, DOMAIN),
|
|
|
|
(HOST_SHORT + '.', DOMAIN),
|
|
|
|
(HOST_SHORT, DOMAIN + '.'),
|
|
|
|
(HOST_SHORT + '.', DOMAIN + '.'),
|
|
|
|
(HOST, DOMAIN),
|
|
|
|
]
|
|
|
|
TEST_FQDN_RESULT = HOST + '.'
|
2016-08-02 18:19:19 +03:00
|
|
|
|
2016-08-17 23:18:03 +03:00
|
|
|
|
2016-08-02 18:19:19 +03:00
|
|
|
@pytest.fixture(scope="function")
|
|
|
|
def dns(request):
|
2016-08-02 19:39:02 +03:00
|
|
|
dns = resolver.DynamicResolver(domain=DOMAIN)
|
2016-08-02 18:19:19 +03:00
|
|
|
dns.start(dns_address=INTERFACE, dns_port=PORT, tcp=True)
|
|
|
|
request.addfinalizer(dns.close)
|
|
|
|
return dns
|
2016-08-03 01:06:35 +03:00
|
|
|
|
|
|
|
|
2016-08-03 07:35:58 +03:00
|
|
|
@pytest.fixture(scope="function")
|
2016-09-28 18:35:07 +03:00
|
|
|
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():
|
2016-08-03 07:35:58 +03:00
|
|
|
"""
|
|
|
|
NOTE: All fixtures must be function scope to work with VCRPY cassettes
|
|
|
|
"""
|
2016-08-03 01:06:35 +03:00
|
|
|
return one.OneClient()
|
2016-08-12 18:24:52 +03:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
|
|
@vcr.use_cassette()
|
|
|
|
def vms(oneclient):
|
|
|
|
return oneclient.vms()
|
2016-08-17 17:13:43 +03:00
|
|
|
|
|
|
|
|
|
|
|
@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
|