summaryrefslogtreecommitdiff
path: root/testing/embedding/test_basic.py
diff options
context:
space:
mode:
authorStefano Rivera <stefano@rivera.za.net>2016-01-17 07:47:21 -0800
committerStefano Rivera <stefano@rivera.za.net>2016-01-17 07:47:21 -0800
commit609026636a6a93afaec01d6ec9e237eba8bbbb92 (patch)
tree9d02434a045bfadc637c6b914119f04573e595c4 /testing/embedding/test_basic.py
parent91c55b1abe75f799ac646b30b49738a0476b5f1a (diff)
downloadcffi-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.py14
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