From bc88849e310995ed0bb21c85a823454f0075b19e Mon Sep 17 00:00:00 2001 From: Justin Riley Date: Wed, 28 Sep 2016 10:48:26 -0400 Subject: [PATCH] add utils for verifying presence/absence in DNS --- onedns/tests/utils.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/onedns/tests/utils.py b/onedns/tests/utils.py index 5865e26..490a843 100644 --- a/onedns/tests/utils.py +++ b/onedns/tests/utils.py @@ -1,5 +1,8 @@ import dnslib +from IPy import IP + +from onedns import utils from onedns.tests import conftest @@ -9,3 +12,23 @@ def dnsquery(qname, qtype, server=None, port=None, tcp=False): q = dnslib.DNSRecord(q=dnslib.DNSQuestion(qname, qtype)) a_pkt = q.send(server, port, tcp=tcp) return dnslib.DNSRecord.parse(a_pkt) + + +def verify_vm_dns(dns_entries, domain=None): + domain = domain or conftest.DOMAIN + for name, ip in dns_entries.items(): + fqdn = utils.get_fqdn(name, domain) + reverse = IP(ip).reverseName() + assert dnsquery(fqdn, dnslib.QTYPE.A).short() == ip + assert dnsquery(reverse, dnslib.QTYPE.PTR).short() == fqdn + + +def verify_vm_dns_absent(dns_entries, domain=None): + domain = domain or conftest.DOMAIN + for name, ip in dns_entries.items(): + fqdn = utils.get_fqdn(name, domain) + reverse = IP(ip).reverseName() + q = dnsquery(fqdn, dnslib.QTYPE.A) + assert dnslib.RCODE.get(q.header.rcode) == 'NXDOMAIN' + q = dnsquery(reverse, dnslib.QTYPE.PTR) + assert dnslib.RCODE.get(q.header.rcode) == 'NXDOMAIN'