]> granicus.if.org Git - pdns/commitdiff
move assert helper out of dnsdist tests
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 3 Oct 2019 13:18:31 +0000 (15:18 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Tue, 8 Oct 2019 08:39:45 +0000 (10:39 +0200)
contrib/assert-equal-DNSMessage/eqdnsmessage.py [new file with mode: 0644]
regression-tests.dnsdist/dnsdisttests.py
regression-tests.dnsdist/eqdnsmessage.py [new symlink]

diff --git a/contrib/assert-equal-DNSMessage/eqdnsmessage.py b/contrib/assert-equal-DNSMessage/eqdnsmessage.py
new file mode 100644 (file)
index 0000000..99a6784
--- /dev/null
@@ -0,0 +1,30 @@
+import difflib
+import dns
+import unittest
+
+class AssertEqualDNSMessageMixin(unittest.TestCase):
+    def assertEqualDNSMessage(self, first, second, msg=None):
+        if not first == second:
+            a = str(first).split('\n')
+            b = str(second).split('\n')
+
+            diff = '\n'.join(
+                difflib.unified_diff(
+                    a,
+                    b,
+                    fromfile='first',
+                    tofile='second',
+                    n=max(len(a), len(b)),
+                    lineterm=""
+                )
+            )
+
+            standardMsg = "%s != %s:\n%s" % (repr(first), repr(second), diff)
+            msg = self._formatMessage(msg, standardMsg)
+
+            raise self.failureException(msg)
+
+    def setUp(self):
+        self.addTypeEqualityFunc(dns.message.Message, self.assertEqualDNSMessage)
+
+        super(AssertEqualDNSMessageMixin, self).setUp()
\ No newline at end of file
index e5aeae8f7660718559ce733b096cf6df9e5bcb53..32020b48affd22e40f8f5c39bcd5c8a1b903a275 100644 (file)
@@ -16,6 +16,8 @@ import dns.message
 import libnacl
 import libnacl.utils
 
+from eqdnsmessage import AssertEqualDNSMessageMixin
+
 # Python2/3 compatibility hacks
 try:
   from queue import Queue
@@ -28,7 +30,7 @@ except NameError:
   pass
 
 
-class DNSDistTest(unittest.TestCase):
+class DNSDistTest(AssertEqualDNSMessageMixin, unittest.TestCase):
     """
     Set up a dnsdist instance and responder threads.
     Queries sent to dnsdist are relayed to the responder threads,
@@ -440,8 +442,6 @@ class DNSDistTest(unittest.TestCase):
     def setUp(self):
         # This function is called before every tests
 
-        self.addTypeEqualityFunc(dns.message.Message, self.assertEqualDNSMessage)
-
         # Clear the responses counters
         for key in self._responsesCounter:
             self._responsesCounter[key] = 0
@@ -456,6 +456,8 @@ class DNSDistTest(unittest.TestCase):
         while not self._fromResponderQueue.empty():
             self._fromResponderQueue.get(False)
 
+        super(DNSDistTest, self).setUp()
+
     @classmethod
     def clearToResponderQueue(cls):
         while not cls._toResponderQueue.empty():
@@ -580,25 +582,3 @@ class DNSDistTest(unittest.TestCase):
     def checkResponseNoEDNS(self, expected, received):
         self.checkMessageNoEDNS(expected, received)
 
-    def assertEqualDNSMessage(self, first, second, msg=None):
-        if not first == second:
-            a = str(first).split('\n')
-            b = str(second).split('\n')
-
-            import difflib
-
-            diff = '\n'.join(
-                difflib.unified_diff(
-                    a,
-                    b,
-                    fromfile='first',
-                    tofile='second',
-                    n=max(len(a), len(b)),
-                    lineterm=""
-                )
-            )
-
-            standardMsg = "%s != %s:\n%s" % (repr(first), repr(second), diff)
-            msg = self._formatMessage(msg, standardMsg)
-
-            raise self.failureException(msg)
diff --git a/regression-tests.dnsdist/eqdnsmessage.py b/regression-tests.dnsdist/eqdnsmessage.py
new file mode 120000 (symlink)
index 0000000..d9a56a8
--- /dev/null
@@ -0,0 +1 @@
+../contrib/assert-equal-DNSMessage/eqdnsmessage.py
\ No newline at end of file