From b0404bef401ae294aa9a5c1072cb3b051c931215 Mon Sep 17 00:00:00 2001 From: David Wilson Date: Tue, 26 Jun 2018 04:11:10 +0100 Subject: [PATCH] tests: fix get_module_via_* encoding issues --- mitogen/master.py | 5 +++-- tests/module_finder_test.py | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/mitogen/master.py b/mitogen/master.py index 159bf427..f3009999 100644 --- a/mitogen/master.py +++ b/mitogen/master.py @@ -308,9 +308,10 @@ class ModuleFinder(object): resembles a Python script. For now we simply verify the file contains ASCII text. """ - fp = open(path, 'r') + fp = open(path, 'rb') try: - return not set(fp.read(512)).difference(string.printable) + sample = fp.read(512).decode('latin-1') + return not set(sample).difference(string.printable) finally: fp.close() diff --git a/tests/module_finder_test.py b/tests/module_finder_test.py index 971cd9ed..f4bbd712 100644 --- a/tests/module_finder_test.py +++ b/tests/module_finder_test.py @@ -60,14 +60,14 @@ class GetModuleViaPkgutilTest(testlib.TestCase): path, src, is_pkg = self.call('module_finder_testmod') self.assertEquals(path, testlib.data_path('module_finder_testmod/__init__.py')) - self.assertEquals('', src) + self.assertEquals(mitogen.core.b(''), src) self.assertTrue(is_pkg) def test_empty_source_module(self): path, src, is_pkg = self.call('module_finder_testmod.empty_mod') self.assertEquals(path, testlib.data_path('module_finder_testmod/empty_mod.py')) - self.assertEquals('', src) + self.assertEquals(mitogen.core.b(''), src) self.assertFalse(is_pkg) def test_regular_mod(self): @@ -75,7 +75,8 @@ class GetModuleViaPkgutilTest(testlib.TestCase): path, src, is_pkg = self.call('module_finder_testmod.regular_mod') self.assertEquals(path, testlib.data_path('module_finder_testmod/regular_mod.py')) - self.assertEquals(src, inspect.getsource(regular_mod)) + self.assertEquals(mitogen.core.to_text(src), + inspect.getsource(regular_mod)) self.assertFalse(is_pkg) @@ -89,7 +90,7 @@ class GetModuleViaSysModulesTest(testlib.TestCase): import __main__ path, src, is_pkg = self.call('__main__') self.assertEquals(path, __main__.__file__) - self.assertEquals(src, open(path).read()) + self.assertEquals(src, open(path, 'rb').read()) self.assertFalse(is_pkg) def test_dylib_fails(self):