mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-108747: Add unit tests for site.{usercustomize,sitecustomize} hooks (#109470)
This commit is contained in:
parent
220bcc9e27
commit
738574fb21
2 changed files with 40 additions and 0 deletions
|
@ -465,6 +465,44 @@ class ImportSideEffectTests(unittest.TestCase):
|
|||
else:
|
||||
self.fail("sitecustomize not imported automatically")
|
||||
|
||||
@support.requires_subprocess()
|
||||
def test_customization_modules_on_startup(self):
|
||||
mod_names = [
|
||||
'sitecustomize'
|
||||
]
|
||||
|
||||
if site.ENABLE_USER_SITE:
|
||||
mod_names.append('usercustomize')
|
||||
|
||||
temp_dir = tempfile.mkdtemp()
|
||||
self.addCleanup(os_helper.rmtree, temp_dir)
|
||||
|
||||
with EnvironmentVarGuard() as environ:
|
||||
environ['PYTHONPATH'] = temp_dir
|
||||
|
||||
for module_name in mod_names:
|
||||
os_helper.rmtree(temp_dir)
|
||||
os.mkdir(temp_dir)
|
||||
|
||||
customize_path = os.path.join(temp_dir, f'{module_name}.py')
|
||||
eyecatcher = f'EXECUTED_{module_name}'
|
||||
|
||||
with open(customize_path, 'w') as f:
|
||||
f.write(f'print("{eyecatcher}")')
|
||||
|
||||
output = subprocess.check_output([sys.executable, '-c', '""'])
|
||||
self.assertIn(eyecatcher, output.decode('utf-8'))
|
||||
|
||||
# -S blocks any site-packages
|
||||
output = subprocess.check_output([sys.executable, '-S', '-c', '""'])
|
||||
self.assertNotIn(eyecatcher, output.decode('utf-8'))
|
||||
|
||||
# -s blocks user site-packages
|
||||
if 'usercustomize' == module_name:
|
||||
output = subprocess.check_output([sys.executable, '-s', '-c', '""'])
|
||||
self.assertNotIn(eyecatcher, output.decode('utf-8'))
|
||||
|
||||
|
||||
@unittest.skipUnless(hasattr(urllib.request, "HTTPSHandler"),
|
||||
'need SSL support to download license')
|
||||
@test.support.requires_resource('network')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue