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: