|
37 | 37 | import stat |
38 | 38 | import sys |
39 | 39 | from distutils.version import StrictVersion |
40 | | -from contextlib import contextmanager |
41 | 40 | from test.framework.utilities import EnhancedTestCase, TestLoaderFiltered, init_config |
42 | 41 | from unittest import TextTestRunner |
43 | 42 |
|
|
58 | 57 | TEST_MODULES_COUNT = 81 |
59 | 58 |
|
60 | 59 |
|
61 | | -@contextmanager |
62 | | -def temporary_home_dir(): |
63 | | - tmpdir = tempfile.mkdtemp() |
64 | | - orig_home = os.environ['HOME'] |
65 | | - os.environ['HOME'] = tmpdir |
66 | | - try: |
67 | | - yield tmpdir |
68 | | - finally: |
69 | | - os.environ['HOME'] = orig_home |
70 | | - shutil.rmtree(tmpdir) |
71 | | - |
72 | 60 | class ModulesTest(EnhancedTestCase): |
73 | 61 | """Test cases for modules.""" |
74 | 62 |
|
@@ -375,14 +363,15 @@ def test_exist(self): |
375 | 363 | self.init_testmods() |
376 | 364 | # Sanity check: Module aliases don't exist yet |
377 | 365 | self.assertEqual(self.modtool.exist(['OpenMPI/99', 'OpenMPIAlias']), [False, False]) |
378 | | - with temporary_home_dir() as home_dir: |
379 | | - reset_module_caches() |
380 | | - write_file(os.path.join(home_dir, '.modulerc'), '\n'.join([ |
381 | | - '#%Module', |
382 | | - 'module-version OpenMPI/2.1.2-GCC-6.4.0-2.28 99', |
383 | | - 'module-alias OpenMPIAlias OpenMPI/2.1.2-GCC-6.4.0-2.28', |
384 | | - ])) |
385 | | - self.assertEqual(self.modtool.exist(['OpenMPI/99', 'OpenMPIAlias']), [True, True]) |
| 366 | + # Use a temporary dir, not the users HOME |
| 367 | + os.environ['HOME'] = tempfile.mkdtemp() |
| 368 | + reset_module_caches() |
| 369 | + write_file(os.path.join(os.environ['HOME'], '.modulerc'), '\n'.join([ |
| 370 | + '#%Module', |
| 371 | + 'module-version OpenMPI/2.1.2-GCC-6.4.0-2.28 99', |
| 372 | + 'module-alias OpenMPIAlias OpenMPI/2.1.2-GCC-6.4.0-2.28', |
| 373 | + ])) |
| 374 | + self.assertEqual(self.modtool.exist(['OpenMPI/99', 'OpenMPIAlias']), [True, True]) |
386 | 375 |
|
387 | 376 | def test_load(self): |
388 | 377 | """ test if we load one module it is in the loaded_modules """ |
|
0 commit comments