mirror of
https://github.com/python/cpython.git
synced 2025-10-22 06:32:43 +00:00
bpo-45020: Add tests for the -X "frozen_modules" option. (gh-28997)
We hadn't explicitly added any tests for this, so here they are. https://bugs.python.org/issue45020
This commit is contained in:
parent
2b8677a3cd
commit
6afb285ff0
3 changed files with 78 additions and 0 deletions
|
@ -123,6 +123,21 @@ class CmdLineTest(unittest.TestCase):
|
|||
else:
|
||||
self.assertEqual(err, b'')
|
||||
|
||||
def test_xoption_frozen_modules(self):
|
||||
tests = {
|
||||
('=on', 'FrozenImporter'),
|
||||
('=off', 'SourceFileLoader'),
|
||||
('=', 'FrozenImporter'),
|
||||
('', 'FrozenImporter'),
|
||||
}
|
||||
for raw, expected in tests:
|
||||
cmd = ['-X', f'frozen_modules{raw}',
|
||||
#'-c', 'import os; print(os.__spec__.loader.__name__, end="")']
|
||||
'-c', 'import os; print(os.__spec__.loader, end="")']
|
||||
with self.subTest(raw):
|
||||
res = assert_python_ok(*cmd)
|
||||
self.assertRegex(res.out.decode('utf-8'), expected)
|
||||
|
||||
def test_run_module(self):
|
||||
# Test expected operation of the '-m' switch
|
||||
# Switch needs an argument
|
||||
|
|
|
@ -1466,6 +1466,30 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
|
|||
self.run_embedded_interpreter("test_get_argc_argv")
|
||||
# ignore output
|
||||
|
||||
def test_init_use_frozen_modules(self):
|
||||
tests = {
|
||||
('=on', 1),
|
||||
('=off', 0),
|
||||
('=', 1),
|
||||
('', 1),
|
||||
}
|
||||
for raw, expected in tests:
|
||||
optval = f'frozen_modules{raw}'
|
||||
config = {
|
||||
'parse_argv': 2,
|
||||
'argv': ['-c'],
|
||||
'orig_argv': ['./argv0', '-X', optval, '-c', 'pass'],
|
||||
'program_name': './argv0',
|
||||
'run_command': 'pass\n',
|
||||
'use_environment': 1,
|
||||
'xoptions': [optval],
|
||||
'use_frozen_modules': expected,
|
||||
}
|
||||
env = {'TESTFROZEN': raw[1:]} if raw else None
|
||||
with self.subTest(repr(raw)):
|
||||
self.check_all_configs("test_init_use_frozen_modules", config,
|
||||
api=API_PYTHON, env=env)
|
||||
|
||||
|
||||
class SetConfigTests(unittest.TestCase):
|
||||
def test_set_config(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue