diff options
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_inspect.py | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 66d3fab429..fc3bf07f1c 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -12,6 +12,7 @@ import re import shutil import sys import types +import textwrap import unicodedata import unittest import unittest.mock @@ -27,6 +28,8 @@ from test.script_helper import assert_python_ok, assert_python_failure from test import inspect_fodder as mod from test import inspect_fodder2 as mod2 +from test.test_import import _ready_to_import + # Functions tested in this suite: # ismodule, isclass, ismethod, isfunction, istraceback, isframe, iscode, @@ -3087,6 +3090,34 @@ class TestMain(unittest.TestCase): self.assertEqual(err, b'') +class TestReload(unittest.TestCase): + + src_before = textwrap.dedent("""\ +def foo(): + print("Bla") + """) + + src_after = textwrap.dedent("""\ +def foo(): + print("Oh no!") + """) + + def assertInspectEqual(self, path, source): + inspected_src = inspect.getsource(source) + with open(path) as src: + self.assertEqual( + src.read().splitlines(True), + inspected_src.splitlines(True) + ) + + def test_getsource_reload(self): + # see issue 1218234 + with _ready_to_import('reload_bug', self.src_before) as (name, path): + module = importlib.import_module(name) + self.assertInspectEqual(path, module) + with open(path, 'w') as src: + src.write(self.src_after) + self.assertInspectEqual(path, module) def test_main(): @@ -3097,7 +3128,7 @@ def test_main(): TestGetcallargsUnboundMethods, TestGetattrStatic, TestGetGeneratorState, TestNoEOL, TestSignatureObject, TestSignatureBind, TestParameterObject, TestBoundArguments, TestSignaturePrivateHelpers, TestGetClosureVars, - TestUnwrap, TestMain + TestUnwrap, TestMain, TestReload ) if __name__ == "__main__": |