summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Reisner <dreisner@archlinux.org>2018-08-19 21:12:33 -0400
committerAndrew Gregory <andrew.gregory.8@gmail.com>2018-10-18 18:05:19 -0700
commitafb9c0140fd6949ede64cc1a304e9349772fca04 (patch)
tree6995c7eb8f090f5af64ae6219f872b42db2eb9d3
parentffde85aadfe0e08fb710102d0a547335e9d1a200 (diff)
downloadpacman-afb9c0140fd6949ede64cc1a304e9349772fca04.tar.xz
Port pactest to python3
Use BytesIO instead of StringIO, and ensure that we unicode-encode data where needed.
-rw-r--r--configure.ac2
-rwxr-xr-xtest/pacman/pactest.py5
-rw-r--r--test/pacman/pmdb.py4
-rw-r--r--test/pacman/pmpkg.py6
-rw-r--r--test/pacman/util.py2
5 files changed, 10 insertions, 9 deletions
diff --git a/configure.ac b/configure.ac
index a569ffeb..c369ca74 100644
--- a/configure.ac
+++ b/configure.ac
@@ -179,7 +179,7 @@ AC_SUBST(LFS_CFLAGS)
AC_PROG_AWK
AC_PROG_CC_C99
AC_PROG_INSTALL
-AC_CHECK_PROGS([PYTHON], [python2.7 python2 python], [false])
+AC_CHECK_PROGS([PYTHON], [python3 python], [false])
AC_PATH_PROGS([BASH_SHELL], [bash bash4], [false])
# check for perl 5.10.1 (needed by makepkg-template)
diff --git a/test/pacman/pactest.py b/test/pacman/pactest.py
index 1f5b8483..85cce6a1 100755
--- a/test/pacman/pactest.py
+++ b/test/pacman/pactest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
#
# pactest : run automated testing on the pacman binary
#
@@ -45,7 +45,8 @@ class MultiWriter():
# duplicate stdout/stderr to a temporary file
class OutputSaver():
def __init__(self):
- self.save_file = tempfile.NamedTemporaryFile(prefix='pactest-output-')
+ self.save_file = tempfile.NamedTemporaryFile(
+ prefix='pactest-output-', mode='w')
def __enter__(self):
sys.stdout = MultiWriter(sys.stdout, self.save_file)
diff --git a/test/pacman/pmdb.py b/test/pacman/pmdb.py
index f7671987..95aa8756 100644
--- a/test/pacman/pmdb.py
+++ b/test/pacman/pmdb.py
@@ -15,9 +15,9 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+from io import BytesIO
import os
import shutil
-from StringIO import StringIO
import tarfile
import pmpkg
@@ -251,7 +251,7 @@ class pmdb(object):
filename = os.path.join(pkg.fullname(), name)
info = tarfile.TarInfo(filename)
info.size = len(data)
- tar.addfile(info, StringIO(data))
+ tar.addfile(info, BytesIO(data.encode('utf8')))
tar.close()
# TODO: this is a bit unnecessary considering only one test uses it
serverpath = os.path.join(self.root, util.SYNCREPO, self.treename)
diff --git a/test/pacman/pmpkg.py b/test/pacman/pmpkg.py
index 5a32ccd6..4667ebc1 100644
--- a/test/pacman/pmpkg.py
+++ b/test/pacman/pmpkg.py
@@ -14,8 +14,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+from io import BytesIO
import os
-from StringIO import StringIO
import tarfile
import util
@@ -146,7 +146,7 @@ class pmpkg(object):
for name, data in archive_files:
info = tarfile.TarInfo(name)
info.size = len(data)
- tar.addfile(info, StringIO(data))
+ tar.addfile(info, BytesIO(data.encode('utf8')))
# Generate package file system
for name in self.files:
@@ -167,7 +167,7 @@ class pmpkg(object):
# TODO wow what a hack, adding a newline to match mkfile?
filedata = name + "\n"
info.size = len(filedata)
- tar.addfile(info, StringIO(filedata))
+ tar.addfile(info, BytesIO(filedata.encode('utf8')))
tar.close()
diff --git a/test/pacman/util.py b/test/pacman/util.py
index 5fbe4c35..544bdd8d 100644
--- a/test/pacman/util.py
+++ b/test/pacman/util.py
@@ -152,7 +152,7 @@ def getmd5sum(filename):
def mkmd5sum(data):
checksum = hashlib.md5()
- checksum.update("%s\n" % data)
+ checksum.update(("%s\n" % data).encode('utf8'))
return checksum.hexdigest()