From 1bab6441915cde2acd398b26435c09b710d83603 Mon Sep 17 00:00:00 2001 From: Dimitri John Ledkov Date: Thu, 18 Dec 2014 21:53:00 +0000 Subject: [PATCH] Conf fixes --- ubuntutools/config.py | 2 +- ubuntutools/test/test_config.py | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/ubuntutools/config.py b/ubuntutools/config.py index 6e11e4a..f047ae4 100644 --- a/ubuntutools/config.py +++ b/ubuntutools/config.py @@ -179,6 +179,6 @@ def ubu_email(name=None, email=None, export=True): encoding = locale.getdefaultlocale()[1] if not encoding: encoding = 'utf-8' - if name: + if name and isinstance(name, bytes): name = name.decode(encoding) return name, email diff --git a/ubuntutools/test/test_config.py b/ubuntutools/test/test_config.py index f0c3d97..b118b05 100644 --- a/ubuntutools/test/test_config.py +++ b/ubuntutools/test/test_config.py @@ -22,7 +22,6 @@ except ImportError: import os import sys import locale -from io import BytesIO try: from StringIO import StringIO except: @@ -49,7 +48,7 @@ class ConfigTestCase(unittest.TestCase): } if filename not in files: raise IOError("No such file or directory: '%s'" % filename) - return BytesIO(files[filename]) + return StringIO(files[filename]) def setUp(self): super(ConfigTestCase, self).setUp() @@ -57,7 +56,11 @@ class ConfigTestCase(unittest.TestCase): self.assertRegex = self.assertRegexpMatches m = mock.mock_open() m.side_effect = self._fake_open - patcher = mock.patch('__builtin__.open', m) + if sys.version_info[0] >= 3: + target = 'builtins.open' + else: + target = '__builtin__.open' + patcher = mock.patch(target, m) self.addCleanup(patcher.stop) patcher.start() @@ -77,7 +80,7 @@ class ConfigTestCase(unittest.TestCase): def clean_environment(self): self._config_files['system'] = '' self._config_files['user'] = '' - for k in os.environ.keys(): + for k in list(os.environ.keys()): if k.startswith(('UBUNTUTOOLS_', 'TEST_')): del os.environ[k] @@ -231,7 +234,11 @@ class UbuEmailTestCase(unittest.TestCase): encoding = locale.getdefaultlocale()[1] if not encoding: encoding = 'utf-8' - name = 'Jöe Déveloper'.decode('utf-8') - os.environ['DEBFULLNAME'] = name.encode(encoding) + name = 'Jöe Déveloper' + env_name = name + if isinstance(name, bytes): + name = 'Jöe Déveloper'.decode('utf-8') + env_name = name.encode(encoding) + os.environ['DEBFULLNAME'] = env_name os.environ['DEBEMAIL'] = email = 'joe@example.net' self.assertEqual(ubu_email(), (name, email))