]> granicus.if.org Git - python/commitdiff
Issue #11614: Fix importlib tests for the new __hello__ module
authorVictor Stinner <victor.stinner@haypocalc.com>
Mon, 16 May 2011 14:57:18 +0000 (16:57 +0200)
committerVictor Stinner <victor.stinner@haypocalc.com>
Mon, 16 May 2011 14:57:18 +0000 (16:57 +0200)
Lib/importlib/test/frozen/test_loader.py

index fa64f30d30e54d914864823d5cb7dd2a61c1e13b..06532f1bc0d2fb0a7ee89d59d3a6b93653c61314 100644 (file)
@@ -3,20 +3,21 @@ import imp
 import unittest
 from .. import abc
 from .. import util
-
+from test.support import captured_stdout
 
 class LoaderTests(abc.LoaderTests):
 
     def test_module(self):
-        with util.uncache('__hello__'):
+        with util.uncache('__hello__'), captured_stdout() as stdout:
             module = machinery.FrozenImporter.load_module('__hello__')
             check = {'__name__': '__hello__', '__file__': '<frozen>',
                     '__package__': '', '__loader__': machinery.FrozenImporter}
             for attr, value in check.items():
                 self.assertEqual(getattr(module, attr), value)
+            self.assertEqual(stdout.getvalue(), 'Hello world!\n')
 
     def test_package(self):
-        with util.uncache('__phello__'):
+        with util.uncache('__phello__'),  captured_stdout() as stdout:
             module = machinery.FrozenImporter.load_module('__phello__')
             check = {'__name__': '__phello__', '__file__': '<frozen>',
                      '__package__': '__phello__', '__path__': ['__phello__'],
@@ -26,9 +27,11 @@ class LoaderTests(abc.LoaderTests):
                 self.assertEqual(attr_value, value,
                                  "for __phello__.%s, %r != %r" %
                                  (attr, attr_value, value))
+            self.assertEqual(stdout.getvalue(), 'Hello world!\n')
 
     def test_lacking_parent(self):
-        with util.uncache('__phello__', '__phello__.spam'):
+        with util.uncache('__phello__', '__phello__.spam'), \
+             captured_stdout() as stdout:
             module = machinery.FrozenImporter.load_module('__phello__.spam')
             check = {'__name__': '__phello__.spam', '__file__': '<frozen>',
                     '__package__': '__phello__',
@@ -38,12 +41,15 @@ class LoaderTests(abc.LoaderTests):
                 self.assertEqual(attr_value, value,
                                  "for __phello__.spam.%s, %r != %r" %
                                  (attr, attr_value, value))
+            self.assertEqual(stdout.getvalue(), 'Hello world!\n')
 
     def test_module_reuse(self):
-        with util.uncache('__hello__'):
+        with util.uncache('__hello__'), captured_stdout() as stdout:
             module1 = machinery.FrozenImporter.load_module('__hello__')
             module2 = machinery.FrozenImporter.load_module('__hello__')
             self.assertTrue(module1 is module2)
+            self.assertEqual(stdout.getvalue(),
+                             'Hello world!\nHello world!\n')
 
     def test_state_after_failure(self):
         # No way to trigger an error in a frozen module.
@@ -62,10 +68,12 @@ class InspectLoaderTests(unittest.TestCase):
     def test_get_code(self):
         # Make sure that the code object is good.
         name = '__hello__'
-        code = machinery.FrozenImporter.get_code(name)
-        mod = imp.new_module(name)
-        exec(code, mod.__dict__)
-        self.assertTrue(hasattr(mod, 'initialized'))
+        with captured_stdout() as stdout:
+            code = machinery.FrozenImporter.get_code(name)
+            mod = imp.new_module(name)
+            exec(code, mod.__dict__)
+            self.assertTrue(hasattr(mod, 'initialized'))
+            self.assertEqual(stdout.getvalue(), 'Hello world!\n')
 
     def test_get_source(self):
         # Should always return None.