]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist tests: make py3k compatible and pick py3k if available 6322/head
authorChris Hofstaedtler <chris.hofstaedtler@deduktiva.com>
Mon, 5 Mar 2018 11:34:00 +0000 (12:34 +0100)
committerChris Hofstaedtler <chris.hofstaedtler@deduktiva.com>
Mon, 5 Mar 2018 13:48:46 +0000 (14:48 +0100)
18 files changed:
regression-tests.dnsdist/.gitignore
regression-tests.dnsdist/dnscrypt.py
regression-tests.dnsdist/dnsdisttests.py
regression-tests.dnsdist/runtests
regression-tests.dnsdist/test_API.py
regression-tests.dnsdist/test_Advanced.py
regression-tests.dnsdist/test_Caching.py
regression-tests.dnsdist/test_Carbon.py
regression-tests.dnsdist/test_DNSCrypt.py
regression-tests.dnsdist/test_Dnstap.py
regression-tests.dnsdist/test_DynBlocks.py
regression-tests.dnsdist/test_EdnsClientSubnet.py
regression-tests.dnsdist/test_Protobuf.py
regression-tests.dnsdist/test_SNMP.py
regression-tests.dnsdist/test_TCPKeepAlive.py
regression-tests.dnsdist/test_TCPLimits.py
regression-tests.dnsdist/test_TeeAction.py
regression-tests.dnsdist/test_Trailing.py

index b58aec4ec401633e31f491d2787bf405dc421106..6fcb424ebee0a04272fa3db8ecab3d58087a0c4e 100644 (file)
@@ -8,3 +8,4 @@ DNSCryptResolver*
 .history
 dnsdist.log
 /*_pb2.py
+/__pycache__/
index 3ed8cb5d6ff10ac0e931b6637050d4523d72884e..238d973e47b90e21a2a8d5defd0df0c51ba6047f 100644 (file)
@@ -6,6 +6,8 @@ import dns
 import dns.message
 import libnacl
 import libnacl.utils
+import binascii
+
 
 class DNSCryptResolverCertificate(object):
     DNSCRYPT_CERT_MAGIC = '\x44\x4e\x53\x43'
@@ -65,7 +67,7 @@ class DNSCryptClient(object):
 
     def __init__(self, providerName, providerFingerprint, resolverAddress, resolverPort=443, timeout=2):
         self._providerName = providerName
-        self._providerFingerprint = providerFingerprint.lower().replace(':', '').decode('hex')
+        self._providerFingerprint = binascii.unhexlify(providerFingerprint.lower().replace(':', ''))
         self._resolverAddress = resolverAddress
         self._resolverPort = resolverPort
         self._resolverCertificates = []
index eaea70b598fa7178fd2d93b88f480e5bedda37e9..f565841d608acc505a6fc75fd718c4136ced8a85 100644 (file)
@@ -1,7 +1,6 @@
 #!/usr/bin/env python2
 
 import copy
-import Queue
 import os
 import socket
 import ssl
@@ -17,6 +16,15 @@ import dns.message
 import libnacl
 import libnacl.utils
 
+# Python2/3 compatibility hacks
+if sys.version_info[0] == 2:
+  from Queue import Queue
+  range = xrange
+else:
+  from queue import Queue
+  range = range  # allow re-export of the builtin name
+
+
 class DNSDistTest(unittest.TestCase):
     """
     Set up a dnsdist instance and responder threads.
@@ -29,8 +37,8 @@ class DNSDistTest(unittest.TestCase):
     _dnsDistPort = 5340
     _dnsDistListeningAddr = "127.0.0.1"
     _testServerPort = 5350
-    _toResponderQueue = Queue.Queue()
-    _fromResponderQueue = Queue.Queue()
+    _toResponderQueue = Queue()
+    _fromResponderQueue = Queue()
     _queueTimeout = 1
     _dnsdistStartupDelay = 2.0
     _dnsdist = None
@@ -396,6 +404,7 @@ class DNSDistTest(unittest.TestCase):
 
     @classmethod
     def _encryptConsole(cls, command, nonce):
+        command = command.encode('UTF-8')
         if cls._consoleKey is None:
             return command
         return libnacl.crypto_secretbox(command, nonce, cls._consoleKey)
@@ -403,8 +412,10 @@ class DNSDistTest(unittest.TestCase):
     @classmethod
     def _decryptConsole(cls, command, nonce):
         if cls._consoleKey is None:
-            return command
-        return libnacl.crypto_secretbox_open(command, nonce, cls._consoleKey)
+            result = command
+        else:
+            result = libnacl.crypto_secretbox_open(command, nonce, cls._consoleKey)
+        return result.decode('UTF-8')
 
     @classmethod
     def sendConsoleCommand(cls, command, timeout=1.0):
@@ -421,7 +432,7 @@ class DNSDistTest(unittest.TestCase):
             print("Received a nonce of size %d, expecting %d, console command will not be sent!" % (len(theirNonce), len(ourNonce)))
             return None
 
-        halfNonceSize = len(ourNonce) / 2
+        halfNonceSize = int(len(ourNonce) / 2)
         readingNonce = ourNonce[0:halfNonceSize] + theirNonce[halfNonceSize:]
         writingNonce = theirNonce[0:halfNonceSize] + ourNonce[halfNonceSize:]
         msg = cls._encryptConsole(command, writingNonce)
@@ -435,7 +446,7 @@ class DNSDistTest(unittest.TestCase):
 
     def compareOptions(self, a, b):
         self.assertEquals(len(a), len(b))
-        for idx in xrange(len(a)):
+        for idx in range(len(a)):
             self.assertEquals(a[idx], b[idx])
 
     def checkMessageNoEDNS(self, expected, received):
index fdb8dcb47bec81b5124a446ce4b04d6499fb68cf..8802191cc3900eff312f16f9225218215ac2bf99 100755 (executable)
@@ -1,10 +1,18 @@
 #!/usr/bin/env bash
 set -e
 
-PYTHON=${PYTHON:-python2}
-
 if [ ! -d .venv ]; then
-       virtualenv -p ${PYTHON} .venv
+  if [ -z "$PYTHON" ]; then
+    if [ ! -z "$(python3 --version | egrep '^Python 3.[6789]' 2>/dev/null)" ]; then
+      # found python3.6 or better
+      PYTHON=python3
+    else
+      # until we have better Linux distribution detection.
+      PYTHON=python2
+    fi
+  fi
+
+  virtualenv -p ${PYTHON} .venv
 fi
 . .venv/bin/activate
 python -V
@@ -13,7 +21,7 @@ protoc -I=../pdns/ --python_out=. ../pdns/dnsmessage.proto
 protoc -I=../pdns/ --python_out=. ../pdns/dnstap.proto
 
 if [ -z "${DNSDISTBIN}" ]; then
-    DNSDISTBIN=$(ls ../pdns/dnsdistdist/dnsdist-*/dnsdist)
+  DNSDISTBIN=$(ls ../pdns/dnsdistdist/dnsdist-*/dnsdist)
 fi
 export DNSDISTBIN
 
index e042ad546dd737480266387773d63986554358c9..5ceb9462892af5fc60499922bcb0f77efa7f8b21 100644 (file)
@@ -355,7 +355,7 @@ class TestAPIWritable(DNSDistTest):
         configFile = self._APIWriteDir + '/' + 'acl.conf'
         self.assertTrue(os.path.isfile(configFile))
         fileContent = None
-        with file(configFile) as f:
+        with open(configFile, 'rt') as f:
             fileContent = f.read()
 
         self.assertEquals(fileContent, """-- Generated by the REST API, DO NOT EDIT
index bab9e729189f8ad93176b79266b641fd4c9f2c91..6f2c3f838dea264f2c5799bb4b392264016aecb6 100644 (file)
@@ -1325,7 +1325,7 @@ class TestAdvancedLuaTruncated(DNSDistTest):
 class TestStatNodeRespRingSince(DNSDistTest):
 
     _consoleKey = DNSDistTest.generateConsoleKey()
-    _consoleKeyB64 = base64.b64encode(_consoleKey)
+    _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii')
     _config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
     _config_template = """
     setKey("%s")
@@ -1362,7 +1362,7 @@ class TestStatNodeRespRingSince(DNSDistTest):
         self.sendConsoleCommand("nodesSeen = {}")
         self.sendConsoleCommand("statNodeRespRing(visitor)")
         nodes = self.sendConsoleCommand("str = '' for key,value in pairs(nodesSeen) do str = str..value..\"\\n\" end return str")
-        nodes = string.strip(nodes, "\n")
+        nodes = nodes.strip("\n")
         self.assertEquals(nodes, """statnodesince.advanced.tests.powerdns.com.
 advanced.tests.powerdns.com.
 tests.powerdns.com.
@@ -1372,7 +1372,7 @@ com.""")
         self.sendConsoleCommand("nodesSeen = {}")
         self.sendConsoleCommand("statNodeRespRing(visitor, 0)")
         nodes = self.sendConsoleCommand("str = '' for key,value in pairs(nodesSeen) do str = str..value..\"\\n\" end return str")
-        nodes = string.strip(nodes, "\n")
+        nodes = nodes.strip("\n")
         self.assertEquals(nodes, """statnodesince.advanced.tests.powerdns.com.
 advanced.tests.powerdns.com.
 tests.powerdns.com.
@@ -1384,7 +1384,7 @@ com.""")
         self.sendConsoleCommand("nodesSeen = {}")
         self.sendConsoleCommand("statNodeRespRing(visitor)")
         nodes = self.sendConsoleCommand("str = '' for key,value in pairs(nodesSeen) do str = str..value..\"\\n\" end return str")
-        nodes = string.strip(nodes, "\n")
+        nodes = nodes.strip("\n")
         self.assertEquals(nodes, """statnodesince.advanced.tests.powerdns.com.
 advanced.tests.powerdns.com.
 tests.powerdns.com.
@@ -1394,13 +1394,13 @@ com.""")
         self.sendConsoleCommand("nodesSeen = {}")
         self.sendConsoleCommand("statNodeRespRing(visitor, 5)")
         nodes = self.sendConsoleCommand("str = '' for key,value in pairs(nodesSeen) do str = str..value..\"\\n\" end return str")
-        nodes = string.strip(nodes, "\n")
+        nodes = nodes.strip("\n")
         self.assertEquals(nodes, """""")
 
         self.sendConsoleCommand("nodesSeen = {}")
         self.sendConsoleCommand("statNodeRespRing(visitor, 10)")
         nodes = self.sendConsoleCommand("str = '' for key,value in pairs(nodesSeen) do str = str..value..\"\\n\" end return str")
-        nodes = string.strip(nodes, "\n")
+        nodes = nodes.strip("\n")
         self.assertEquals(nodes, """statnodesince.advanced.tests.powerdns.com.
 advanced.tests.powerdns.com.
 tests.powerdns.com.
index fab7372799414adcf0c77a34f485eabb4eb670fc..c11c10d74cd807668a8788b66205de1e9382da48 100644 (file)
@@ -531,7 +531,7 @@ class TestCachingCacheFull(DNSDistTest):
 class TestCachingNoStale(DNSDistTest):
 
     _consoleKey = DNSDistTest.generateConsoleKey()
-    _consoleKeyB64 = base64.b64encode(_consoleKey)
+    _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii')
     _config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
     _config_template = """
     pc = newPacketCache(100, 86400, 1)
@@ -581,7 +581,7 @@ class TestCachingNoStale(DNSDistTest):
 class TestCachingStale(DNSDistTest):
 
     _consoleKey = DNSDistTest.generateConsoleKey()
-    _consoleKeyB64 = base64.b64encode(_consoleKey)
+    _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii')
     _staleCacheTTL = 60
     _config_params = ['_staleCacheTTL', '_consoleKeyB64', '_consolePort', '_testServerPort']
     _config_template = """
@@ -642,7 +642,7 @@ class TestCachingStale(DNSDistTest):
 class TestCacheManagement(DNSDistTest):
 
     _consoleKey = DNSDistTest.generateConsoleKey()
-    _consoleKeyB64 = base64.b64encode(_consoleKey)
+    _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii')
     _config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
     _config_template = """
     pc = newPacketCache(100, 86400, 1)
index 09b13daf3b052bcc40f32324e5426c982f201f3b..a06e90aba6c5ffebf938e4af022d7d729cbac2c7 100644 (file)
@@ -1,10 +1,9 @@
 #!/usr/bin/env python
-import Queue
 import threading
 import socket
 import sys
 import time
-from dnsdisttests import DNSDistTest
+from dnsdisttests import DNSDistTest, Queue
 
 class TestCarbon(DNSDistTest):
 
@@ -12,8 +11,8 @@ class TestCarbon(DNSDistTest):
     _carbonServer1Name = "carbonname1"
     _carbonServer2Port = 8001
     _carbonServer2Name = "carbonname2"
-    _carbonQueue1 = Queue.Queue()
-    _carbonQueue2 = Queue.Queue()
+    _carbonQueue1 = Queue()
+    _carbonQueue2 = Queue()
     _carbonInterval = 2
     _carbonCounters = {}
     _config_params = ['_carbonServer1Port', '_carbonServer1Name', '_carbonInterval', '_carbonServer2Port', '_carbonServer2Name', '_carbonInterval']
@@ -36,7 +35,7 @@ class TestCarbon(DNSDistTest):
         while True:
             (conn, _) = sock.accept()
             conn.settimeout(2.0)
-            lines = ""
+            lines = b''
             while True:
                 data = conn.recv(4096)
                 if not data:
@@ -82,10 +81,10 @@ class TestCarbon(DNSDistTest):
 
         self.assertTrue(data1)
         self.assertTrue(len(data1.splitlines()) > 1)
-        expectedStart = "dnsdist." + self._carbonServer1Name + ".main."
+        expectedStart = b"dnsdist.%s.main." % self._carbonServer1Name.encode('UTF-8')
         for line in data1.splitlines():
             self.assertTrue(line.startswith(expectedStart))
-            parts = line.split(' ')
+            parts = line.split(b' ')
             self.assertEquals(len(parts), 3)
             self.assertTrue(parts[1].isdigit())
             self.assertTrue(parts[2].isdigit())
@@ -93,10 +92,10 @@ class TestCarbon(DNSDistTest):
 
         self.assertTrue(data2)
         self.assertTrue(len(data2.splitlines()) > 1)
-        expectedStart = "dnsdist." + self._carbonServer2Name + ".main."
+        expectedStart = b"dnsdist.%s.main." % self._carbonServer2Name.encode('UTF-8')
         for line in data2.splitlines():
             self.assertTrue(line.startswith(expectedStart))
-            parts = line.split(' ')
+            parts = line.split(b' ')
             self.assertEquals(len(parts), 3)
             self.assertTrue(parts[1].isdigit())
             self.assertTrue(parts[2].isdigit())
index d134264f71e35b28cc6778a15cbef80db502d0f5..f5f45d41c7940dd2720e8d760f4b56d8c4ef50d2 100644 (file)
@@ -18,7 +18,7 @@ class DNSCryptTest(DNSDistTest):
     _dnsDistPortDNSCrypt = 8443
 
     _consoleKey = DNSDistTest.generateConsoleKey()
-    _consoleKeyB64 = base64.b64encode(_consoleKey)
+    _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii')
 
     _providerFingerprint = 'E1D7:2108:9A59:BF8D:F101:16FA:ED5E:EA6A:9F6C:C78F:7F91:AF6B:027E:62F4:69C3:B1AA'
     _providerName = "2.provider.name"
index 8c2fd12dc7dbb18f14b33d4ea7233587bd4a9e87..78e71bffc89556d39f3b0e66e7188567929e1642 100644 (file)
@@ -1,12 +1,11 @@
 #!/usr/bin/env python
-import Queue
 import threading
 import os
 import socket
 import struct
 import sys
 import time
-from dnsdisttests import DNSDistTest
+from dnsdisttests import DNSDistTest, Queue
 
 import dns
 import dnstap_pb2
@@ -21,9 +20,9 @@ FSTRM_CONTROL_FINISH = 0x05
 def checkDnstapBase(testinstance, dnstap, protocol, initiator):
     testinstance.assertTrue(dnstap)
     testinstance.assertTrue(dnstap.HasField('identity'))
-    testinstance.assertEqual(dnstap.identity, 'a.server')
+    testinstance.assertEqual(dnstap.identity, b'a.server')
     testinstance.assertTrue(dnstap.HasField('version'))
-    testinstance.assertIn('dnsdist ', dnstap.version)
+    testinstance.assertIn(b'dnsdist ', dnstap.version)
     testinstance.assertTrue(dnstap.HasField('type'))
     testinstance.assertEqual(dnstap.type, dnstap.MESSAGE)
     testinstance.assertTrue(dnstap.HasField('message'))
@@ -80,7 +79,7 @@ def checkDnstapResponse(testinstance, dnstap, protocol, response, initiator='127
 
 class TestDnstapOverRemoteLogger(DNSDistTest):
     _remoteLoggerServerPort = 4243
-    _remoteLoggerQueue = Queue.Queue()
+    _remoteLoggerQueue = Queue()
     _remoteLoggerCounter = 0
     _config_params = ['_testServerPort', '_remoteLoggerServerPort']
     _config_template = """
@@ -266,12 +265,12 @@ class TestDnstapOverRemoteLogger(DNSDistTest):
         # check the dnstap message corresponding to the UDP query
         dnstap = self.getFirstDnstap()
         checkDnstapQuery(self, dnstap, dnstap_pb2.UDP, query)
-        checkDnstapExtra(self, dnstap, "Type,Query")
+        checkDnstapExtra(self, dnstap, b"Type,Query")
 
         # check the dnstap message corresponding to the UDP response
         dnstap = self.getFirstDnstap()
         checkDnstapResponse(self, dnstap, dnstap_pb2.UDP, response)
-        checkDnstapExtra(self, dnstap, "Type,Response")
+        checkDnstapExtra(self, dnstap, b"Type,Response")
 
         (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)
         self.assertTrue(receivedQuery)
@@ -286,12 +285,12 @@ class TestDnstapOverRemoteLogger(DNSDistTest):
         # check the dnstap message corresponding to the TCP query
         dnstap = self.getFirstDnstap()
         checkDnstapQuery(self, dnstap, dnstap_pb2.TCP, query)
-        checkDnstapExtra(self, dnstap, "Type,Query")
+        checkDnstapExtra(self, dnstap, b"Type,Query")
 
         # check the dnstap message corresponding to the TCP response
         dnstap = self.getFirstDnstap()
         checkDnstapResponse(self, dnstap, dnstap_pb2.TCP, response)
-        checkDnstapExtra(self, dnstap, "Type,Response")
+        checkDnstapExtra(self, dnstap, b"Type,Response")
 
 
 def fstrm_get_control_frame_type(data):
@@ -302,7 +301,7 @@ def fstrm_get_control_frame_type(data):
 def fstrm_make_control_frame_reply(cft, data):
     if cft == FSTRM_CONTROL_READY:
         # Reply with ACCEPT frame and content-type
-        contenttype = 'protobuf:dnstap.Dnstap'
+        contenttype = b'protobuf:dnstap.Dnstap'
         frame = struct.pack('!LLL', FSTRM_CONTROL_ACCEPT, 1,
                             len(contenttype)) + contenttype
         buf = struct.pack("!LL", 0, len(frame)) + frame
@@ -349,7 +348,7 @@ def fstrm_handle_bidir_connection(conn, on_data):
 
 class TestDnstapOverFrameStreamUnixLogger(DNSDistTest):
     _fstrmLoggerAddress = '/tmp/fslutest.sock'
-    _fstrmLoggerQueue = Queue.Queue()
+    _fstrmLoggerQueue = Queue()
     _fstrmLoggerCounter = 0
     _config_params = ['_testServerPort', '_fstrmLoggerAddress']
     _config_template = """
@@ -435,7 +434,7 @@ class TestDnstapOverFrameStreamUnixLogger(DNSDistTest):
 
 class TestDnstapOverFrameStreamTcpLogger(DNSDistTest):
     _fstrmLoggerPort = 4000
-    _fstrmLoggerQueue = Queue.Queue()
+    _fstrmLoggerQueue = Queue()
     _fstrmLoggerCounter = 0
     _config_params = ['_testServerPort', '_fstrmLoggerPort']
     _config_template = """
index 430d87e9b77c6fb457872560192005401b9da602..83ef65db49b4cbb94c321104f97694efd186a953 100644 (file)
@@ -2,7 +2,7 @@
 import base64
 import time
 import dns
-from dnsdisttests import DNSDistTest
+from dnsdisttests import DNSDistTest, range
 
 class TestDynBlockQPS(DNSDistTest):
 
@@ -33,7 +33,7 @@ class TestDynBlockQPS(DNSDistTest):
 
         allowed = 0
         sent = 0
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
             sent = sent + 1
             if receivedQuery:
@@ -70,7 +70,7 @@ class TestDynBlockQPS(DNSDistTest):
         # again, over TCP this time
         allowed = 0
         sent = 0
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)
             sent = sent + 1
             if receivedQuery:
@@ -136,7 +136,7 @@ class TestDynBlockQPSRefused(DNSDistTest):
 
         allowed = 0
         sent = 0
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
             sent = sent + 1
             if receivedQuery:
@@ -174,7 +174,7 @@ class TestDynBlockQPSRefused(DNSDistTest):
         allowed = 0
         sent = 0
         # again, over TCP this time
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)
             sent = sent + 1
             if receivedQuery:
@@ -241,7 +241,7 @@ class TestDynBlockQPSActionRefused(DNSDistTest):
 
         allowed = 0
         sent = 0
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
             sent = sent + 1
             if receivedQuery:
@@ -279,7 +279,7 @@ class TestDynBlockQPSActionRefused(DNSDistTest):
         allowed = 0
         sent = 0
         # again, over TCP this time
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)
             sent = sent + 1
             if receivedQuery:
@@ -346,7 +346,7 @@ class TestDynBlockQPSActionTruncated(DNSDistTest):
 
         allowed = 0
         sent = 0
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
             sent = sent + 1
             if receivedQuery:
@@ -390,7 +390,7 @@ class TestDynBlockQPSActionTruncated(DNSDistTest):
         allowed = 0
         sent = 0
         # again, over TCP this time, we should never get truncated!
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)
             sent = sent + 1
             self.assertEquals(query, receivedQuery)
@@ -430,7 +430,7 @@ class TestDynBlockServFails(DNSDistTest):
         servfailResponse.set_rcode(dns.rcode.SERVFAIL)
 
         # start with normal responses
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
             receivedQuery.id = query.id
             self.assertEquals(query, receivedQuery)
@@ -446,7 +446,7 @@ class TestDynBlockServFails(DNSDistTest):
         # now with ServFail!
         sent = 0
         allowed = 0
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendUDPQuery(query, servfailResponse)
             sent = sent + 1
             if receivedQuery:
@@ -482,7 +482,7 @@ class TestDynBlockServFails(DNSDistTest):
 
         # again, over TCP this time
         # start with normal responses
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
             receivedQuery.id = query.id
             self.assertEquals(query, receivedQuery)
@@ -498,7 +498,7 @@ class TestDynBlockServFails(DNSDistTest):
         # now with ServFail!
         sent = 0
         allowed = 0
-        for _ in xrange((self._dynBlockQPS * self._dynBlockPeriod) + 1):
+        for _ in range((self._dynBlockQPS * self._dynBlockPeriod) + 1):
             (receivedQuery, receivedResponse) = self.sendTCPQuery(query, servfailResponse)
             sent = sent + 1
             if receivedQuery:
@@ -538,7 +538,7 @@ class TestDynBlockResponseBytes(DNSDistTest):
     _dynBlockPeriod = 2
     _dynBlockDuration = 5
     _consoleKey = DNSDistTest.generateConsoleKey()
-    _consoleKeyB64 = base64.b64encode(_consoleKey)
+    _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii')
     _config_params = ['_consoleKeyB64', '_consolePort', '_dynBlockBytesPerSecond', '_dynBlockPeriod', '_dynBlockDuration', '_testServerPort']
     _config_template = """
     setKey("%s")
@@ -572,7 +572,7 @@ class TestDynBlockResponseBytes(DNSDistTest):
 
         print(time.time())
 
-        for _ in xrange(self._dynBlockBytesPerSecond * 5 / len(response.to_wire())):
+        for _ in range(int(self._dynBlockBytesPerSecond * 5 / len(response.to_wire()))):
             (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
             sent = sent + len(response.to_wire())
             if receivedQuery:
@@ -633,7 +633,7 @@ class TestDynBlockResponseBytes(DNSDistTest):
         # again, over TCP this time
         allowed = 0
         sent = 0
-        for _ in xrange(self._dynBlockBytesPerSecond * 5 / len(response.to_wire())):
+        for _ in range(int(self._dynBlockBytesPerSecond * 5 / len(response.to_wire()))):
             (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)
             sent = sent + len(response.to_wire())
             if receivedQuery:
index d2e0b9b063f7a0d47e10ac3073c615f7a0f70cae..1b7f4d090d2559c0176f12376d7e35a833808ab7 100644 (file)
@@ -225,7 +225,7 @@ class TestEdnsClientSubnetNoOverride(DNSDistTest):
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096)
         expectedQuery = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, options=[ecso])
         response = dns.message.make_response(expectedQuery)
-        ecoResponse = cookiesoption.CookiesOption('deadbeef', 'deadbeef')
+        ecoResponse = cookiesoption.CookiesOption(b'deadbeef', b'deadbeef')
         ecsoResponse = clientsubnetoption.ClientSubnetOption('127.0.0.1', 24, scope=24)
         response.use_edns(edns=True, payload=4096, options=[ecoResponse, ecsoResponse])
         expectedResponse = dns.message.make_response(query)
@@ -268,7 +268,7 @@ class TestEdnsClientSubnetNoOverride(DNSDistTest):
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096)
         expectedQuery = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, options=[ecso])
         response = dns.message.make_response(expectedQuery)
-        ecoResponse = cookiesoption.CookiesOption('deadbeef', 'deadbeef')
+        ecoResponse = cookiesoption.CookiesOption(b'deadbeef', b'deadbeef')
         ecsoResponse = clientsubnetoption.ClientSubnetOption('127.0.0.1', 24, scope=24)
         response.use_edns(edns=True, payload=4096, options=[ecsoResponse, ecoResponse])
         expectedResponse = dns.message.make_response(query)
@@ -311,7 +311,7 @@ class TestEdnsClientSubnetNoOverride(DNSDistTest):
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096)
         expectedQuery = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, options=[ecso])
         response = dns.message.make_response(expectedQuery)
-        ecoResponse = cookiesoption.CookiesOption('deadbeef', 'deadbeef')
+        ecoResponse = cookiesoption.CookiesOption(b'deadbeef', b'deadbeef')
         ecsoResponse = clientsubnetoption.ClientSubnetOption('127.0.0.1', 24, scope=24)
         response.use_edns(edns=True, payload=4096, options=[ecoResponse, ecsoResponse, ecoResponse])
         expectedResponse = dns.message.make_response(query)
index 8eb55360e1d914090605d0b49fed21220bf5863e..e24fac79460057bfc45b63f507b3c6e6ddda2dd2 100644 (file)
@@ -1,11 +1,10 @@
 #!/usr/bin/env python
-import Queue
 import threading
 import socket
 import struct
 import sys
 import time
-from dnsdisttests import DNSDistTest
+from dnsdisttests import DNSDistTest, Queue
 
 import dns
 import dnsmessage_pb2
@@ -13,7 +12,7 @@ import dnsmessage_pb2
 
 class TestProtobuf(DNSDistTest):
     _protobufServerPort = 4242
-    _protobufQueue = Queue.Queue()
+    _protobufQueue = Queue()
     _protobufCounter = 0
     _config_params = ['_testServerPort', '_protobufServerPort']
     _config_template = """
index 5e5042e35e6fae09c219821fca43982d491f32aa..f177a6f9fd753c3b33613961921b04148b3e48a3 100644 (file)
@@ -22,7 +22,7 @@ class TestSNMP(DNSDistTest):
     """
 
     def _checkStatsValues(self, results, queriesCountersValue):
-        for i in range(1, 5) + range(6, 20) + range(24, 35) + [ 35 ] :
+        for i in list(range(1, 5)) + list(range(6, 20)) + list(range(24, 35)) + [ 35 ] :
             oid = self._snmpOID + '.1.' + str(i) + '.0'
             self.assertTrue(oid in results)
             self.assertTrue(isinstance(results[oid], Counter64))
@@ -42,7 +42,7 @@ class TestSNMP(DNSDistTest):
             self.assertEquals(results[oid], queriesCountersValue)
 
         # the others counters (except for latency ones) should still be at 0
-        for i in range(3, 5) + range(6, 14) + [26, 27, 29, 30, 31, 35, 36]:
+        for i in [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 26, 27, 29, 30, 31, 35, 36]:
             oid = self._snmpOID + '.1.' + str(i) + '.0'
             self.assertEquals(results[oid], 0)
 
index 9f0f3fc54f03f00ffc7524f6c50ebdcdaca62d32..a1672e494128142454619d6676942316fdaa91a6 100644 (file)
@@ -2,7 +2,7 @@
 import struct
 import time
 import dns
-from dnsdisttests import DNSDistTest
+from dnsdisttests import DNSDistTest, range
 
 class TestTCPKeepAlive(DNSDistTest):
     """
@@ -45,7 +45,7 @@ class TestTCPKeepAlive(DNSDistTest):
         conn = self.openTCPConnection()
 
         count = 0
-        for idx in xrange(5):
+        for idx in range(5):
             try:
                 self.sendTCPQueryOverConnection(conn, query)
                 response = self.recvTCPResponseOverConnection(conn)
@@ -84,7 +84,7 @@ class TestTCPKeepAlive(DNSDistTest):
         conn = self.openTCPConnection()
 
         count = 0
-        for idx in xrange(5):
+        for idx in range(5):
             try:
                 self.sendTCPQueryOverConnection(conn, query)
                 response = self.recvTCPResponseOverConnection(conn)
@@ -114,7 +114,7 @@ class TestTCPKeepAlive(DNSDistTest):
         conn = self.openTCPConnection()
 
         count = 0
-        for idx in xrange(5):
+        for idx in range(5):
             try:
                 self.sendTCPQueryOverConnection(conn, query)
                 response = self.recvTCPResponseOverConnection(conn)
@@ -139,7 +139,7 @@ class TestTCPKeepAlive(DNSDistTest):
         conn = self.openTCPConnection()
 
         count = 0
-        for idx in xrange(5):
+        for idx in range(5):
             try:
                 self.sendTCPQueryOverConnection(conn, query)
                 response = self.recvTCPResponseOverConnection(conn)
@@ -163,7 +163,7 @@ class TestTCPKeepAlive(DNSDistTest):
         conn = self.openTCPConnection()
 
         count = 0
-        for idx in xrange(5):
+        for idx in range(5):
             try:
                 self.sendTCPQueryOverConnection(conn, query)
                 response = self.recvTCPResponseOverConnection(conn)
@@ -186,7 +186,7 @@ class TestTCPKeepAlive(DNSDistTest):
         conn = self.openTCPConnection()
 
         count = 0
-        for idx in xrange(5):
+        for idx in range(5):
             try:
                 self.sendTCPQueryOverConnection(conn, query)
                 response = self.recvTCPResponseOverConnection(conn)
@@ -236,7 +236,7 @@ class TestTCPKeepAliveNoDownstreamDrop(DNSDistTest):
         conn = self.openTCPConnection()
 
         count = 0
-        for idx in xrange(5):
+        for idx in range(5):
             try:
                 self.sendTCPQueryOverConnection(conn, query)
                 response = self.recvTCPResponseOverConnection(conn)
index fb9dc03a6774c1db67193e19c361decae67fa6db..395ade98ca98b02dc736da6f8e691a396cb7b8a8 100644 (file)
@@ -2,7 +2,7 @@
 import struct
 import time
 import dns
-from dnsdisttests import DNSDistTest
+from dnsdisttests import DNSDistTest, range
 
 class TestTCPLimits(DNSDistTest):
 
@@ -28,7 +28,7 @@ class TestTCPLimits(DNSDistTest):
         conn = self.openTCPConnection()
 
         count = 0
-        for idx in xrange(self._maxTCPQueriesPerConn):
+        for idx in range(self._maxTCPQueriesPerConn):
             try:
                 self.sendTCPQueryOverConnection(conn, query)
                 response = self.recvTCPResponseOverConnection(conn)
@@ -62,7 +62,7 @@ class TestTCPLimits(DNSDistTest):
         query = dns.message.make_query(name, 'A', 'IN')
         conns = []
 
-        for idx in xrange(self._maxTCPConnsPerClient + 1):
+        for idx in range(self._maxTCPConnsPerClient + 1):
             conns.append(self.openTCPConnection())
 
         count = 0
index 3d744102816618e1c42e9940612e82422b5e8591..5adb3819be470f689969204349b2200f63b5f3ca 100644 (file)
@@ -1,18 +1,17 @@
 #!/usr/bin/env python
 import base64
-import Queue
 import threading
 import clientsubnetoption
 import dns
-from dnsdisttests import DNSDistTest
+from dnsdisttests import DNSDistTest, Queue
 
 class TestTeeAction(DNSDistTest):
 
     _consoleKey = DNSDistTest.generateConsoleKey()
-    _consoleKeyB64 = base64.b64encode(_consoleKey)
+    _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii')
     _teeServerPort = 5390
-    _toTeeQueue = Queue.Queue()
-    _fromTeeQueue = Queue.Queue()
+    _toTeeQueue = Queue()
+    _fromTeeQueue = Queue()
     _config_template = """
     setKey("%s")
     controlSocket("127.0.0.1:%s")
index f00d47bf8f23045370a81bf2f2d82bcb203fb472..34b1e1f14a3511c59d85c4d84548c89eb83df88b 100644 (file)
@@ -42,7 +42,7 @@ class TestTrailing(DNSDistTest):
         response.answer.append(rrset)
 
         raw = query.to_wire()
-        raw = raw + 'A'* 20
+        raw = raw + b'A'* 20
         (receivedQuery, receivedResponse) = self.sendUDPQuery(raw, response, rawQuery=True)
         self.assertTrue(receivedQuery)
         self.assertTrue(receivedResponse)
@@ -66,7 +66,7 @@ class TestTrailing(DNSDistTest):
         query = dns.message.make_query(name, 'AAAA', 'IN')
 
         raw = query.to_wire()
-        raw = raw + 'A'* 20
+        raw = raw + b'A'* 20
 
         (_, receivedResponse) = self.sendUDPQuery(raw, response=None, rawQuery=True)
         self.assertEquals(receivedResponse, None)