From: Victor Stinner Date: Thu, 4 May 2017 16:21:52 +0000 (+0200) Subject: bpo-30108: Restore sys.path in test_site (#1197) (#1459) X-Git-Tag: v2.7.14rc1~174 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=78064387e5815633168a80dcdc1bd9aec4eff46a;p=python bpo-30108: Restore sys.path in test_site (#1197) (#1459) Add setUpModule() and tearDownModule() functions to test_site to save/restore sys.path at the module level to prevent warning if the user site directory is created, since site.addsitedir() modifies sys.path. (cherry picked from commit b85c136903c6d2368162f7c4a58f258c9c69ead0) --- diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py index d9a9324cb0..3ba5dca822 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -24,14 +24,27 @@ if "site" in sys.modules: else: raise unittest.SkipTest("importation of site.py suppressed") -if site.ENABLE_USER_SITE and not os.path.isdir(site.USER_SITE): - # need to add user site directory for tests - try: - os.makedirs(site.USER_SITE) - site.addsitedir(site.USER_SITE) - except OSError as exc: - raise unittest.SkipTest('unable to create user site directory (%r): %s' - % (site.USER_SITE, exc)) + +OLD_SYS_PATH = None + + +def setUpModule(): + global OLD_SYS_PATH + OLD_SYS_PATH = sys.path[:] + + if site.ENABLE_USER_SITE and not os.path.isdir(site.USER_SITE): + # need to add user site directory for tests + try: + os.makedirs(site.USER_SITE) + # modify sys.path: will be restored by tearDownModule() + site.addsitedir(site.USER_SITE) + except PermissionError as exc: + raise unittest.SkipTest('unable to create user site directory (%r): %s' + % (site.USER_SITE, exc)) + + +def tearDownModule(): + sys.path[:] = OLD_SYS_PATH class HelperFunctionsTests(unittest.TestCase):