From bcc77f747b39209c665683ee1d6bf30066fd4ac6 Mon Sep 17 00:00:00 2001 From: Johnny Robeson Date: Mon, 8 Aug 2016 07:07:44 -0400 Subject: [PATCH] encode args before decode in convert_stub.py for py 3 We encode the args from `sys.argv` with `util.arg_encoding` to make sure we have paths that cleanly open when running `convert_stub.py` on Windows --- test/rsrc/convert_stub.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/test/rsrc/convert_stub.py b/test/rsrc/convert_stub.py index 1c4b7200c..0f4a20f30 100755 --- a/test/rsrc/convert_stub.py +++ b/test/rsrc/convert_stub.py @@ -6,9 +6,16 @@ a specified text tag. """ from __future__ import division, absolute_import, print_function +from os.path import dirname, abspath +import six import sys import platform +beets_src = dirname(dirname(dirname(abspath(__file__)))) +sys.path.insert(0, beets_src) + +from beets.util import arg_encoding # noqa: E402 + def convert(in_file, out_file, tag): """Copy `in_file` to `out_file` and append the string `tag`. @@ -20,8 +27,11 @@ def convert(in_file, out_file, tag): # On Windows, use Unicode paths. (The test harness gives them to us # as UTF-8 bytes.) if platform.system() == 'Windows': - in_file = in_file.decode('utf8') - out_file = out_file.decode('utf8') + if not six.PY2: + in_file = in_file.encode(arg_encoding()) + out_file = out_file.encode(arg_encoding()) + in_file = in_file.decode('utf-8') + out_file = out_file.decode('utf-8') with open(out_file, 'wb') as out_f: with open(in_file, 'rb') as in_f: