From 3b4cfe635da525afd671beedb3327b8b78cc5221 Mon Sep 17 00:00:00 2001 From: "Fabien C. Y. Benureau" Date: Tue, 11 Jul 2017 11:14:06 +0200 Subject: [PATCH] Fix tests for Python 2 Also, some cleanup in fake_env.py --- pubs/content.py | 5 +++++ pubs/uis.py | 3 ++- tests/fake_env.py | 23 +---------------------- tests/test_usecase.py | 4 ++-- 4 files changed, 10 insertions(+), 25 deletions(-) diff --git a/pubs/content.py b/pubs/content.py index b776028..cfa634f 100644 --- a/pubs/content.py +++ b/pubs/content.py @@ -70,9 +70,14 @@ def read_text_file(filepath, fail=True): try: with _open(filepath, 'r') as f: content = f.read() + try: # Python 2 + content = content.decode('utf-8') + except AttributeError: # Python 3 + pass except UnicodeDecodeError: raise UnableToDecodeTextFile(filepath) # Should "raise from", if Python 2 support is dropped. + return content def read_binary_file(filepath, fail=True): diff --git a/pubs/uis.py b/pubs/uis.py index 20735ad..9e59de9 100644 --- a/pubs/uis.py +++ b/pubs/uis.py @@ -14,6 +14,7 @@ from .p3 import _get_raw_stdout, _get_raw_stderr, input, ustr from .content import check_file, read_text_file, write_file, system_path +DEBUG = False # package-shared ui that can be accessed using : # from uis import get_ui # ui = get_ui() @@ -117,7 +118,7 @@ class PrintUI(object): :returns: True if exception has been handled (currently never happens) """ - if not self.debug: + if (not DEBUG) and (not self.debug): self.error(ustr(exc)) self.exit() return False diff --git a/tests/fake_env.py b/tests/fake_env.py index 71ef8f5..5ba21d5 100644 --- a/tests/fake_env.py +++ b/tests/fake_env.py @@ -23,27 +23,6 @@ real_shutil = shutil real_glob = glob real_io = io -# def copy_dir(fs, real_dir, fake_dir=None): -# """Copy all the data directory into the fake fs""" -# if fake_dir is None: -# fake_dir = real_dir -# -# for filename in real_os.listdir(real_dir): -# real_path = real_os.path.join(real_dir, filename) -# fake_path = os.path.join(fake_dir, filename) -# if real_os.path.isfile(real_path): -# _, ext = real_os.path.splitext(filename) -# if ext in ['.yaml', '.bib', '.txt', '.md']: -# with real_io.open(real_path, 'r', encoding='utf-8') as f: -# fs.CreateFile(os.path.abspath(fake_path), contents=f.read()) -# else: -# with real_io.open(real_path, 'rb') as f: -# fs.CreateFile(fake_path, contents=f.read()) -# -# if real_os.path.isdir(real_path): -# fs.CreateDirectory(fake_path) -# copy_dir(fs, real_path, fake_path) - # redirecting output @@ -114,7 +93,7 @@ class TestFakeFs(fake_filesystem_unittest.TestCase): self.setUpPyfakefs() self.fs.CreateDirectory(self.rootpath) os.chdir(self.rootpath) - + def reset_fs(self): self._stubber.tearDown() # renew the filesystem diff --git a/tests/test_usecase.py b/tests/test_usecase.py index d1a2841..e1ca9f7 100644 --- a/tests/test_usecase.py +++ b/tests/test_usecase.py @@ -24,7 +24,7 @@ from pubs.commands import init_cmd, import_cmd # makes the tests very noisy -PRINT_OUTPUT = False +PRINT_OUTPUT = False CAPTURE_OUTPUT = True @@ -124,7 +124,7 @@ class CommandTestCase(fake_env.TestFakeFs): self.fail('Unexpected input asked by command: {}.'.format( actual_cmd)) if PRINT_OUTPUT: - print(outs) + print(outs) return outs except SystemExit as exc: exc_class, exc, tb = sys.exc_info()