diff options
| author | Stefano Rivera <stefano@rivera.za.net> | 2016-01-17 07:47:21 -0800 |
|---|---|---|
| committer | Stefano Rivera <stefano@rivera.za.net> | 2016-01-17 07:47:21 -0800 |
| commit | 609026636a6a93afaec01d6ec9e237eba8bbbb92 (patch) | |
| tree | 9d02434a045bfadc637c6b914119f04573e595c4 /testing/embedding/test_basic.py | |
| parent | 91c55b1abe75f799ac646b30b49738a0476b5f1a (diff) | |
| download | cffi-609026636a6a93afaec01d6ec9e237eba8bbbb92.tar.gz | |
Don't blow away PYTHONPATH
Rather parse it, and prefix our base directory, if necessary.
Diffstat (limited to 'testing/embedding/test_basic.py')
| -rw-r--r-- | testing/embedding/test_basic.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/testing/embedding/test_basic.py b/testing/embedding/test_basic.py index aadf621..aad0d38 100644 --- a/testing/embedding/test_basic.py +++ b/testing/embedding/test_basic.py @@ -29,6 +29,14 @@ def check_lib_python_found(tmpdir): py.test.skip(str(_link_error)) +def prefix_pythonpath(): + cffi_base = os.path.dirname(os.path.dirname(local_dir)) + pythonpath = os.environ.get('PYTHONPATH', '').split(':') + if cffi_base not in pythonpath: + pythonpath.insert(0, cffi_base) + return ':'.join(pythonpath) + + class EmbeddingTests: _compiled_modules = {} @@ -69,8 +77,7 @@ class EmbeddingTests: # find a solution to that: we could hack sys.path inside the # script run here, but we can't hack it in the same way in # execute(). - env_extra = {'PYTHONPATH': - os.path.dirname(os.path.dirname(local_dir))} + env_extra = {'PYTHONPATH': prefix_pythonpath()} output = self._run([sys.executable, os.path.join(local_dir, filename)], env_extra=env_extra) match = re.compile(r"\bFILENAME: (.+)").search(output) @@ -114,8 +121,7 @@ class EmbeddingTests: def execute(self, name): path = self.get_path() - env_extra = {} - env_extra['PYTHONPATH'] = os.path.dirname(os.path.dirname(local_dir)) + env_extra = {'PYTHONPATH': prefix_pythonpath()} libpath = os.environ.get('LD_LIBRARY_PATH') if libpath: libpath = path + ':' + libpath |
