[Zodb-checkins] SVN: zdaemon/trunk/src/zdaemon/tests/ Pass PYTHONPATH to subprocesses. In the new buildout,

Jim Fulton jim at zope.com
Sun Nov 5 12:43:38 EST 2006


Log message for revision 71081:
  Pass PYTHONPATH to subprocesses.  In the new buildout, 
  ZConfig and zope packages aren't siblings of zdaemon and zdruns
  lame path guessting fails.  In a modern world, scripts are generated
  by easy_install or buildout ahnd get paths set automatically.  We
  need to phase out this magic path guessing.
  

Changed:
  U   zdaemon/trunk/src/zdaemon/tests/parent.py
  U   zdaemon/trunk/src/zdaemon/tests/testzdrun.py

-=-
Modified: zdaemon/trunk/src/zdaemon/tests/parent.py
===================================================================
--- zdaemon/trunk/src/zdaemon/tests/parent.py	2006-11-05 17:43:33 UTC (rev 71080)
+++ zdaemon/trunk/src/zdaemon/tests/parent.py	2006-11-05 17:43:36 UTC (rev 71081)
@@ -27,7 +27,9 @@
     flag = os.P_NOWAIT
     #cmd = ' '.join([sys.executable] + args)
     #print cmd
-    os.spawnvp(flag, args[0], args)
+    os.spawnvpe(flag, args[0], args,
+                dict(os.environ, PYTHONPATH=':'.join(sys.path)),
+                )
     while 1:
         # wait to be signaled
         time.sleep(1)

Modified: zdaemon/trunk/src/zdaemon/tests/testzdrun.py
===================================================================
--- zdaemon/trunk/src/zdaemon/tests/testzdrun.py	2006-11-05 17:43:33 UTC (rev 71080)
+++ zdaemon/trunk/src/zdaemon/tests/testzdrun.py	2006-11-05 17:43:36 UTC (rev 71081)
@@ -233,13 +233,16 @@
         tmp = tempfile.mkdtemp()
         zdrun_socket = os.path.join(tmp, 'testsock')
         try:
-            zdctlpid = os.spawnvp(
+            zdctlpid = os.spawnvpe(
                 os.P_NOWAIT,
                 sys.executable,
-                [sys.executable, os.path.join(self.here, 'parent.py'), tmp]
+                [sys.executable, os.path.join(self.here, 'parent.py'), tmp],
+                dict(os.environ,
+                     PYTHONPATH=":".join(sys.path),
+                     )
                 )
             # Wait for it to start, but no longer than a minute.
-            deadline = time.time() + 60
+            deadline = time.time() + 6000
             is_started = False
             while time.time() < deadline:
                  response = send_action('status\n', zdrun_socket)



More information about the Zodb-checkins mailing list