[pacman-dev,1/2] Port pactest to python3

Message ID 20180920094344.17831-1-dreisner@archlinux.org
State Superseded, archived
Delegated to: Andrew Gregory
Headers show
Series [pacman-dev,1/2] Port pactest to python3 | expand

Commit Message

Dave Reisner Sept. 20, 2018, 9:43 a.m. UTC
Use BytesIO instead of StringIO, and ensure that we unicode-encode data
where needed.
---
 configure.ac           | 2 +-
 test/pacman/pactest.py | 2 +-
 test/pacman/pmdb.py    | 5 +++--
 test/pacman/pmpkg.py   | 8 +++++---
 test/pacman/util.py    | 2 +-
 5 files changed, 11 insertions(+), 8 deletions(-)

Comments

Andrew Gregory Oct. 17, 2018, 7:42 a.m. UTC | #1
On 09/20/18 at 05:43am, Dave Reisner wrote:
> Use BytesIO instead of StringIO, and ensure that we unicode-encode data
> where needed.
> ---

Any particular reason for the bump or just dropping the (allegedly)
dead python2?  I've held off from doing this so far because asciidoc
is python2, hoping they'd update to python3 eventually.  It appears to
be dead now, though, so I guess it's time to move on.

...

> diff --git a/test/pacman/pmdb.py b/test/pacman/pmdb.py
> index f7671987..26a8d9a4 100644
> --- a/test/pacman/pmdb.py
> +++ b/test/pacman/pmdb.py
> @@ -17,9 +17,10 @@
>  
>  import os
>  import shutil
> -from StringIO import StringIO
>  import tarfile
>  
> +from io import BytesIO
> +

Why the extra line breaks around the new imports?  They were grouped
by built-in vs local.

Patch

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..628193ff 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
 #
diff --git a/test/pacman/pmdb.py b/test/pacman/pmdb.py
index f7671987..26a8d9a4 100644
--- a/test/pacman/pmdb.py
+++ b/test/pacman/pmdb.py
@@ -17,9 +17,10 @@ 
 
 import os
 import shutil
-from StringIO import StringIO
 import tarfile
 
+from io import BytesIO
+
 import pmpkg
 import tap
 import util
@@ -251,7 +252,7 @@  def generate(self):
                     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..e42bd4d5 100644
--- a/test/pacman/pmpkg.py
+++ b/test/pacman/pmpkg.py
@@ -15,7 +15,9 @@ 
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import os
-from StringIO import StringIO
+
+from io import BytesIO
+
 import tarfile
 
 import util
@@ -146,7 +148,7 @@  def makepkg(self, path):
         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 +169,7 @@  def makepkg(self, path):
                 # 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()