Skip to content

Commit

Permalink
bpo-44808: fixes test for interactive inspect getsource of a class (G…
Browse files Browse the repository at this point in the history
…H-27571)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
  • Loading branch information
akulakov and ambv committed Aug 3, 2021
1 parent f7c23a9 commit 5832597
Showing 1 changed file with 8 additions and 12 deletions.
20 changes: 8 additions & 12 deletions Lib/test/test_inspect.py
Original file line number Diff line number Diff line change
Expand Up @@ -586,19 +586,15 @@ def test_getsource_on_code_object(self):
self.assertSourceEqual(mod.eggs.__code__, 12, 18)

class TestGetsourceInteractive(unittest.TestCase):
def tearDown(self):
mod.ParrotDroppings.__module__ = self.mod
sys.modules['__main__'] = self.main

def test_getclasses_interactive(self):
self.main = sys.modules['__main__']
self.mod = mod.ParrotDroppings.__module__
class MockModule:
__file__ = None
sys.modules['__main__'] = MockModule
mod.ParrotDroppings.__module__ = '__main__'
with self.assertRaisesRegex(OSError, 'source code not available') as e:
inspect.getsource(mod.ParrotDroppings)
# bpo-44648: simulate a REPL session;
# there is no `__file__` in the __main__ module
code = "import sys, inspect; \
assert not hasattr(sys.modules['__main__'], '__file__'); \
A = type('A', (), {}); \
inspect.getsource(A)"
_, _, stderr = assert_python_failure("-c", code, __isolated=True)
self.assertIn(b'OSError: source code not available', stderr)

class TestGettingSourceOfToplevelFrames(GetSourceBase):
fodderModule = mod
Expand Down

0 comments on commit 5832597

Please sign in to comment.