Show More
@@ -75,20 +75,29 def teardown_module(): | |||
|
75 | 75 | shutil.rmtree(TMP_TEST_DIR) |
|
76 | 76 | |
|
77 | 77 | |
|
78 | def setup_environment(): | |
|
79 | """Setup testenvironment for some functions that are tested | |
|
80 | in this module. In particular this functions stores attributes | |
|
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 | """ | |
|
78 | # Build decorator that uses the setup_environment/setup_environment | |
|
79 | @pytest.fixture | |
|
80 | def environment(): | |
|
85 | 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(): | |
|
89 | """Restore things that were remembered by the setup_environment function | |
|
90 |
|
|
|
91 | (oldenv, os.name, sys.platform, path.get_home_dir, IPython.__file__, old_wd) = oldstuff | |
|
91 | yield | |
|
92 | ||
|
93 | ( | |
|
94 | oldenv, | |
|
95 | os.name, | |
|
96 | sys.platform, | |
|
97 | path.get_home_dir, | |
|
98 | IPython.__file__, | |
|
99 | old_wd, | |
|
100 | ) = oldstuff | |
|
92 | 101 | os.chdir(old_wd) |
|
93 | 102 | reload(path) |
|
94 | 103 | |
@@ -96,16 +105,7 def teardown_environment(): | |||
|
96 | 105 | if key not in oldenv: |
|
97 | 106 | del env[key] |
|
98 | 107 | env.update(oldenv) |
|
99 |
|
|
|
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() | |
|
108 | assert not hasattr(sys, "frozen") | |
|
109 | 109 | |
|
110 | 110 | |
|
111 | 111 | with_environment = pytest.mark.usefixtures("environment") |
@@ -117,7 +117,7 def test_get_home_dir_1(monkeypatch): | |||
|
117 | 117 | """Testcase for py2exe logic, un-compressed lib |
|
118 | 118 | """ |
|
119 | 119 | unfrozen = path.get_home_dir() |
|
120 | monkeypatch.setattr(sys, "frozen", True) | |
|
120 | monkeypatch.setattr(sys, "frozen", True, raising=False) | |
|
121 | 121 | |
|
122 | 122 | #fake filename for IPython.__init__ |
|
123 | 123 | IPython.__file__ = abspath(join(HOME_TEST_DIR, "Lib/IPython/__init__.py")) |
@@ -132,7 +132,7 def test_get_home_dir_2(monkeypatch): | |||
|
132 | 132 | """Testcase for py2exe logic, compressed lib |
|
133 | 133 | """ |
|
134 | 134 | unfrozen = path.get_home_dir() |
|
135 | monkeypatch.setattr(sys, "frozen", True) | |
|
135 | monkeypatch.setattr(sys, "frozen", True, raising=False) | |
|
136 | 136 | # fake filename for IPython.__init__ |
|
137 | 137 | IPython.__file__ = abspath( |
|
138 | 138 | join(HOME_TEST_DIR, "Library.zip/IPython/__init__.py") |
@@ -279,18 +279,16 def test_get_long_path_name(): | |||
|
279 | 279 | assert p == "/usr/local" |
|
280 | 280 | |
|
281 | 281 | |
|
282 | class TestRaiseDeprecation(unittest.TestCase): | |
|
283 | ||
|
284 | 282 |
|
|
285 | 283 |
|
|
286 |
|
|
|
284 | def test_not_writable_ipdir(): | |
|
287 | 285 |
|
|
288 | 286 |
|
|
289 |
|
|
|
290 |
|
|
|
291 |
|
|
|
292 |
|
|
|
293 |
|
|
|
287 | env.pop("IPYTHON_DIR", None) | |
|
288 | env.pop("IPYTHONDIR", None) | |
|
289 | env.pop("XDG_CONFIG_HOME", None) | |
|
290 | env["HOME"] = tmpdir | |
|
291 | ipdir = os.path.join(tmpdir, ".ipython") | |
|
294 | 292 |
|
|
295 | 293 |
|
|
296 | 294 |
|
@@ -301,9 +299,10 class TestRaiseDeprecation(unittest.TestCase): | |||
|
301 | 299 |
|
|
302 | 300 |
|
|
303 | 301 | |
|
304 |
|
|
|
302 | with pytest.warns(UserWarning, match="is not a writable location"): | |
|
305 | 303 |
|
|
306 |
|
|
|
304 | env.pop("IPYTHON_DIR", None) | |
|
305 | ||
|
307 | 306 | |
|
308 | 307 | @with_environment |
|
309 | 308 | def test_get_py_filename(): |
General Comments 0
You need to be logged in to leave comments.
Login now