commit 4b7f72746a10c1e48df93a3c62c84fcb1d6f2bb2
Author: Simone Basso <bassosimone(a)gmail.com>
Date: Sat Oct 10 11:06:11 2015 +0200
psiphon: use the python provided by sys.executable
There may be more than one Python (for example on MacOS I have both
the system Python and the one installed with brew).
Make sure we use the same Python with which ooni-probe was started
such that modules installed with pip are found.
Updated to avoid setting the temporary file executable and to avoid
removing my Python interpreter :).
---
ooni/nettests/third_party/psiphon.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/ooni/nettests/third_party/psiphon.py b/ooni/nettests/third_party/psiphon.py
index 8ac287d..6a2e08e 100644
--- a/ooni/nettests/third_party/psiphon.py
+++ b/ooni/nettests/third_party/psiphon.py
@@ -1,6 +1,7 @@
import tempfile
import stat
import os
+import sys
from twisted.internet import defer, reactor
from twisted.internet.endpoints import TCP4ClientEndpoint
@@ -76,15 +77,14 @@ class PsiphonTest(httpt.HTTPTest, process.ProcessTest):
'psiphon-circumvention-system/pyclient')
log.debug('psiphon path: %s' % self.psiphonpath)
- x = """#!/usr/bin/env python
+ x = """
from psi_client import connect
connect(False)
"""
f = tempfile.NamedTemporaryFile(delete=False)
f.write(x)
f.close()
- os.chmod(f.name, os.stat(f.name).st_mode | stat.S_IEXEC)
- self.command = [f.name]
+ self.command = [sys.executable, f.name]
log.debug('command: %s' % ''.join(self.command))
def handleRead(self, stdout, stderr):
@@ -119,7 +119,7 @@ connect(False)
def cleanup(_):
log.debug('PsiphonTest:cleanup')
self.processDirector.transport.signalProcess('INT')
- os.remove(self.command[0])
+ os.remove(self.command[1])
return finished
self.bootstrapped.addBoth(cleanup)