d39fd0b
From 5f2d519d8872cb68fe4bc1571e4b070e88a7a405 Mon Sep 17 00:00:00 2001
d39fd0b
From: Rob Crittenden <rcritten@redhat.com>
d39fd0b
Date: Tue, 12 Mar 2019 12:38:30 +0000
d39fd0b
Subject: [PATCH] Port to using python 3 for use in the test framework
d39fd0b
d39fd0b
---
d39fd0b
 Makefile.am          |  8 ++++----
d39fd0b
 gencert.in           |  2 +-
d39fd0b
 test/test.py         |  8 --------
d39fd0b
 test/test_config.py  | 16 ++++++++--------
d39fd0b
 test/test_request.py |  3 +--
d39fd0b
 test/test_util.py    |  9 +++++++--
d39fd0b
 6 files changed, 21 insertions(+), 25 deletions(-)
d39fd0b
d39fd0b
diff --git a/Makefile.am b/Makefile.am
d39fd0b
index 2009060..1946d00 100644
d39fd0b
--- a/Makefile.am
d39fd0b
+++ b/Makefile.am
d39fd0b
@@ -100,14 +100,14 @@ EXTRA_DIST = *.h *.8 LICENSE test docs
d39fd0b
 check:
d39fd0b
 	cd test;	\
d39fd0b
 	rm -rf work;	\
d39fd0b
-	nosetests -v test_cipher.py;	\
d39fd0b
+	nosetests-3 -v test_cipher.py;	\
d39fd0b
 	if [ `id -u` != 0 ]; then	\
d39fd0b
 	./setup.sh -s 1 dbm:;	\
d39fd0b
-	DBPREFIX=dbm: nosetests -v test.py;	\
d39fd0b
+	DBPREFIX=dbm: nosetests-3 -v test.py;	\
d39fd0b
 	sleep 5;	\
d39fd0b
 	rm -rf work;	\
d39fd0b
 	./setup.sh -s 1 sql:;	\
d39fd0b
-	DBPREFIX=sql: nosetests -v test.py;	\
d39fd0b
+	DBPREFIX=sql: nosetests-3 -v test.py;	\
d39fd0b
 	cd ..;	\
d39fd0b
 	else	\
d39fd0b
 	echo "Skipping live tests as they cannot be run as root";	\
d39fd0b
@@ -117,7 +117,7 @@ checksni:
d39fd0b
 	cd test;	\
d39fd0b
 	rm -rf work;	\
d39fd0b
 	./setup.sh -s 25;	\
d39fd0b
-	nosetests -v testsni.py;	\
d39fd0b
+	nosetests-3 -v testsni.py;	\
d39fd0b
 	cd ..
d39fd0b
 
d39fd0b
 
d39fd0b
diff --git a/gencert.in b/gencert.in
d39fd0b
index d119f04..9418025 100755
d39fd0b
--- a/gencert.in
d39fd0b
+++ b/gencert.in
d39fd0b
@@ -38,7 +38,7 @@ getFQDN() {
d39fd0b
                 echo $maxhost
d39fd0b
                 return
d39fd0b
         fi
d39fd0b
-        hostname=$(python -c 'import socket; print(socket.getfqdn())')
d39fd0b
+        hostname=$(python3 -c 'import socket; print(socket.getfqdn())')
d39fd0b
         if [ $? == 0 ]; then
d39fd0b
             echo $hostname
d39fd0b
             return
d39fd0b
diff --git a/test/test.py b/test/test.py
d39fd0b
index 20fd3d2..1b2cb66 100644
d39fd0b
--- a/test/test.py
d39fd0b
+++ b/test/test.py
d39fd0b
@@ -221,14 +221,6 @@ class test_suite1(Declarative):
d39fd0b
             expected=200,
d39fd0b
         ),
d39fd0b
 
d39fd0b
-        dict(
d39fd0b
-            desc='Try SSLv3 client on 1.2-only VH',
d39fd0b
-            request=('/protocoltls12/index.html',
d39fd0b
-                     {'port': 8001,
d39fd0b
-                      'ssl_version': ssl.PROTOCOL_SSLv3}),
d39fd0b
-            expected=requests.exceptions.SSLError(),
d39fd0b
-        ),
d39fd0b
-
d39fd0b
         dict(
d39fd0b
             desc='Try TLSv1 client on 1.2-only VH',
d39fd0b
             request=('/protocoltls12/index.html',
d39fd0b
diff --git a/test/test_config.py b/test/test_config.py
d39fd0b
index f3091e8..749d041 100644
d39fd0b
--- a/test/test_config.py
d39fd0b
+++ b/test/test_config.py
d39fd0b
@@ -61,7 +61,8 @@ def template_file(infilename, vars):
d39fd0b
 
d39fd0b
 def write_template_file(infilename, outfilename, vars):
d39fd0b
     """Read a file and perform template substitutions"""
d39fd0b
-    replacevars = dict(default_vars.items() + vars.items())
d39fd0b
+    replacevars = dict(default_vars.items())
d39fd0b
+    replacevars.update(vars.items())
d39fd0b
     with open(outfilename, 'w') as f:
d39fd0b
         f.write('%s\n' % template_file(infilename, replacevars))
d39fd0b
 
d39fd0b
@@ -171,17 +172,16 @@ class Declarative(object):
d39fd0b
         name = klass.__name__
d39fd0b
         try:
d39fd0b
             output = self.make_request(uri, options)
d39fd0b
-        except StandardError, e:
d39fd0b
-            pass
d39fd0b
+        except Exception as e:
d39fd0b
+            if not isinstance(e, klass):
d39fd0b
+                if expected_str not in str(e):
d39fd0b
+                    raise AssertionError(
d39fd0b
+                        UNEXPECTED % (uri, name, options, e.__class__.__name__, e)
d39fd0b
+                    )
d39fd0b
         else:
d39fd0b
             raise AssertionError(
d39fd0b
                 EXPECTED % (uri, name, options, output)
d39fd0b
             )
d39fd0b
-        if not isinstance(e, klass):
d39fd0b
-            if expected_str not in str(e):
d39fd0b
-                raise AssertionError(
d39fd0b
-                    UNEXPECTED % (uri, name, options, e.__class__.__name__, e)
d39fd0b
-                )
d39fd0b
 
d39fd0b
     def check_result(self, nice, uri, options, expected, cipher=None,
d39fd0b
                      protocol=None, content=None):
d39fd0b
diff --git a/test/test_request.py b/test/test_request.py
d39fd0b
index 8b6dae2..6235e6f 100644
d39fd0b
--- a/test/test_request.py
d39fd0b
+++ b/test/test_request.py
d39fd0b
@@ -3,7 +3,6 @@
d39fd0b
 
d39fd0b
 import socket
d39fd0b
 import requests
d39fd0b
-import urlparse
d39fd0b
 import logging
d39fd0b
 import socket
d39fd0b
 from requests.packages.urllib3.util import get_host
d39fd0b
@@ -227,7 +226,7 @@ try:
d39fd0b
               'ssl_version': ssl.PROTOCOL_SSLv23,
d39fd0b
               'ciphers': 'HIGH'})
d39fd0b
     cipher = r.raw._pool._get_conn().client_cipher
d39fd0b
-except requests.exceptions.SSLError, e:
d39fd0b
+except requests.exceptions.SSLError as e:
d39fd0b
     print e.message
d39fd0b
 else:
d39fd0b
     print r.status_code
d39fd0b
diff --git a/test/test_util.py b/test/test_util.py
d39fd0b
index 101b6a2..95144fc 100644
d39fd0b
--- a/test/test_util.py
d39fd0b
+++ b/test/test_util.py
d39fd0b
@@ -1,3 +1,4 @@
d39fd0b
+import locale
d39fd0b
 import socket
d39fd0b
 import time
d39fd0b
 import subprocess
d39fd0b
@@ -24,7 +25,7 @@ def host_port_open(host, port, socket_type=socket.SOCK_STREAM,
d39fd0b
                 s.recv(512)
d39fd0b
 
d39fd0b
             return True
d39fd0b
-        except socket.error, e:
d39fd0b
+        except socket.error:
d39fd0b
             pass
d39fd0b
         finally:
d39fd0b
             if s:
d39fd0b
@@ -81,7 +82,11 @@ def run(args):
d39fd0b
         p.wait()
d39fd0b
         raise
d39fd0b
 
d39fd0b
-    return (stdout, stderr, p.returncode)
d39fd0b
+    encoding = locale.getpreferredencoding()
d39fd0b
+    output = stdout.decode(encoding)
d39fd0b
+    error_output = stderr.decode(encoding)
d39fd0b
+
d39fd0b
+    return (output, error_output, p.returncode)
d39fd0b
 
d39fd0b
 
d39fd0b
 def assert_equal(got, expected):
d39fd0b
-- 
d39fd0b
2.20.1
d39fd0b