Show More
@@ -75,20 +75,29 def teardown_module(): | |||||
75 | shutil.rmtree(TMP_TEST_DIR) |
|
75 | shutil.rmtree(TMP_TEST_DIR) | |
76 |
|
76 | |||
77 |
|
77 | |||
78 | def setup_environment(): |
|
78 | # Build decorator that uses the setup_environment/setup_environment | |
79 | """Setup testenvironment for some functions that are tested |
|
79 | @pytest.fixture | |
80 | in this module. In particular this functions stores attributes |
|
80 | def environment(): | |
81 | and other things that we need to stub in some test functions. |
|
|||
82 | This needs to be done on a function level and not module level because |
|
|||
83 | each testfunction needs a pristine environment. |
|
|||
84 | """ |
|
|||
85 | global oldstuff, platformstuff |
|
81 | global oldstuff, platformstuff | |
86 | oldstuff = (env.copy(), os.name, sys.platform, path.get_home_dir, IPython.__file__, os.getcwd()) |
|
82 | oldstuff = ( | |
|
83 | env.copy(), | |||
|
84 | os.name, | |||
|
85 | sys.platform, | |||
|
86 | path.get_home_dir, | |||
|
87 | IPython.__file__, | |||
|
88 | os.getcwd(), | |||
|
89 | ) | |||
87 |
|
90 | |||
88 | def teardown_environment(): |
|
91 | yield | |
89 | """Restore things that were remembered by the setup_environment function |
|
92 | ||
90 |
|
|
93 | ( | |
91 | (oldenv, os.name, sys.platform, path.get_home_dir, IPython.__file__, old_wd) = oldstuff |
|
94 | oldenv, | |
|
95 | os.name, | |||
|
96 | sys.platform, | |||
|
97 | path.get_home_dir, | |||
|
98 | IPython.__file__, | |||
|
99 | old_wd, | |||
|
100 | ) = oldstuff | |||
92 | os.chdir(old_wd) |
|
101 | os.chdir(old_wd) | |
93 | reload(path) |
|
102 | reload(path) | |
94 |
|
103 | |||
@@ -96,16 +105,7 def teardown_environment(): | |||||
96 | if key not in oldenv: |
|
105 | if key not in oldenv: | |
97 | del env[key] |
|
106 | del env[key] | |
98 | env.update(oldenv) |
|
107 | env.update(oldenv) | |
99 |
|
|
108 | assert not hasattr(sys, "frozen") | |
100 | del sys.frozen |
|
|||
101 |
|
||||
102 |
|
||||
103 | # Build decorator that uses the setup_environment/setup_environment |
|
|||
104 | @pytest.fixture |
|
|||
105 | def environment(): |
|
|||
106 | setup_environment() |
|
|||
107 | yield |
|
|||
108 | teardown_environment() |
|
|||
109 |
|
109 | |||
110 |
|
110 | |||
111 | with_environment = pytest.mark.usefixtures("environment") |
|
111 | with_environment = pytest.mark.usefixtures("environment") | |
@@ -117,7 +117,7 def test_get_home_dir_1(monkeypatch): | |||||
117 | """Testcase for py2exe logic, un-compressed lib |
|
117 | """Testcase for py2exe logic, un-compressed lib | |
118 | """ |
|
118 | """ | |
119 | unfrozen = path.get_home_dir() |
|
119 | unfrozen = path.get_home_dir() | |
120 | monkeypatch.setattr(sys, "frozen", True) |
|
120 | monkeypatch.setattr(sys, "frozen", True, raising=False) | |
121 |
|
121 | |||
122 | #fake filename for IPython.__init__ |
|
122 | #fake filename for IPython.__init__ | |
123 | IPython.__file__ = abspath(join(HOME_TEST_DIR, "Lib/IPython/__init__.py")) |
|
123 | IPython.__file__ = abspath(join(HOME_TEST_DIR, "Lib/IPython/__init__.py")) | |
@@ -132,7 +132,7 def test_get_home_dir_2(monkeypatch): | |||||
132 | """Testcase for py2exe logic, compressed lib |
|
132 | """Testcase for py2exe logic, compressed lib | |
133 | """ |
|
133 | """ | |
134 | unfrozen = path.get_home_dir() |
|
134 | unfrozen = path.get_home_dir() | |
135 | monkeypatch.setattr(sys, "frozen", True) |
|
135 | monkeypatch.setattr(sys, "frozen", True, raising=False) | |
136 | # fake filename for IPython.__init__ |
|
136 | # fake filename for IPython.__init__ | |
137 | IPython.__file__ = abspath( |
|
137 | IPython.__file__ = abspath( | |
138 | join(HOME_TEST_DIR, "Library.zip/IPython/__init__.py") |
|
138 | join(HOME_TEST_DIR, "Library.zip/IPython/__init__.py") | |
@@ -279,18 +279,16 def test_get_long_path_name(): | |||||
279 | assert p == "/usr/local" |
|
279 | assert p == "/usr/local" | |
280 |
|
280 | |||
281 |
|
281 | |||
282 | class TestRaiseDeprecation(unittest.TestCase): |
|
|||
283 |
|
||||
284 |
|
|
282 | @dec.skip_win32 # can't create not-user-writable dir on win | |
285 |
|
|
283 | @with_environment | |
286 |
|
|
284 | def test_not_writable_ipdir(): | |
287 |
|
|
285 | tmpdir = tempfile.mkdtemp() | |
288 |
|
|
286 | os.name = "posix" | |
289 |
|
|
287 | env.pop("IPYTHON_DIR", None) | |
290 |
|
|
288 | env.pop("IPYTHONDIR", None) | |
291 |
|
|
289 | env.pop("XDG_CONFIG_HOME", None) | |
292 |
|
|
290 | env["HOME"] = tmpdir | |
293 |
|
|
291 | ipdir = os.path.join(tmpdir, ".ipython") | |
294 |
|
|
292 | os.mkdir(ipdir, 0o555) | |
295 |
|
|
293 | try: | |
296 |
|
|
294 | open(os.path.join(ipdir, "_foo_"), "w", encoding="utf-8").close() | |
@@ -301,9 +299,10 class TestRaiseDeprecation(unittest.TestCase): | |||||
301 |
|
|
299 | # assume I'm root and skip the test | |
302 |
|
|
300 | pytest.skip("I can't create directories that I can't write to") | |
303 |
|
301 | |||
304 |
|
|
302 | with pytest.warns(UserWarning, match="is not a writable location"): | |
305 |
|
|
303 | ipdir = paths.get_ipython_dir() | |
306 |
|
|
304 | env.pop("IPYTHON_DIR", None) | |
|
305 | ||||
307 |
|
306 | |||
308 | @with_environment |
|
307 | @with_environment | |
309 | def test_get_py_filename(): |
|
308 | def test_get_py_filename(): |
General Comments 0
You need to be logged in to leave comments.
Login now