diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -11,18 +11,15 @@ import builtins import os import sys import re +import site import encodings import subprocess import sysconfig from copy import copy -# Need to make sure to not import 'site' if someone specified ``-S`` at the -# command-line. Detect this by just making sure 'site' has not been imported -# already. -if "site" in sys.modules: - import site -else: - raise unittest.SkipTest("importation of site.py suppressed") +site.getusersitepackages() +skip_unless_user_site = unittest.skipUnless( + site.ENABLE_USER_SITE, 'user site-packages disabled by -s or -S') if not os.path.isdir(site.USER_SITE): # need to add user site directory for tests @@ -159,7 +156,10 @@ class HelperFunctionsTests(unittest.Test def test_s_option(self): usersite = site.USER_SITE - self.assertIn(usersite, sys.path) + if site.ENABLE_USER_SITE: + self.assertIn(usersite, sys.path) + else: + self.assertNotIn(usersite, sys.path) env = os.environ.copy() rc = subprocess.call([sys.executable, '-c', @@ -363,16 +363,19 @@ class ImportSideEffectTests(unittest.Tes # XXX: implement pass + @skip_unless_user_site def test_setting_quit(self): # 'quit' and 'exit' should be injected into builtins self.assertTrue(hasattr(builtins, "quit")) self.assertTrue(hasattr(builtins, "exit")) + @skip_unless_user_site def test_setting_copyright(self): # 'copyright' and 'credits' should be in builtins self.assertTrue(hasattr(builtins, "copyright")) self.assertTrue(hasattr(builtins, "credits")) + @skip_unless_user_site def test_setting_help(self): # 'help' should be set in builtins self.assertTrue(hasattr(builtins, "help"))