SVN: zope.testing/tags/regebro-python3-reloaded/s This is an attempt to make it possible to run the tests without having buildout.

Lennart Regebro <[email protected]>
Newsgroups gmane.comp.web.zope.zope3.cvs
Message-ID <20091207160204.691D09417F__30960.7665789828$1260201737$gmane$org@cvs.zope.org>
Log message for revision 106250:
  This is an attempt to make it possible to run the tests without having buildout.
  Not entirely there yet.
  
  

Changed:
  U   zope.testing/tags/regebro-python3-reloaded/setup.py
  U   zope.testing/tags/regebro-python3-reloaded/src/zope/testing/testrunner/runner.py
  U   zope.testing/tags/regebro-python3-reloaded/src/zope/testing/tests.py

-=-
Modified: zope.testing/tags/regebro-python3-reloaded/setup.py
===================================================================
--- zope.testing/tags/regebro-python3-reloaded/setup.py	2009-12-07 14:09:42 UTC (rev 106249)
+++ zope.testing/tags/regebro-python3-reloaded/setup.py	2009-12-07 16:02:04 UTC (rev 106250)
@@ -38,6 +38,13 @@
     from distutils.core import setup
     extra = {}
 
+import sys
+if sys.version_info >= (3,):
+    # Python 3 support:
+    extra['use_2to3'] = True
+    extra['setup_requires'] = ['zope.fixers']
+    extra['use_2to3_fixers'] = ['zope.fixers']    
+
 chapters = '\n'.join([
     open(os.path.join('src', 'zope', 'testing', 'testrunner', name)).read()
     for name in (
@@ -109,5 +116,5 @@
         "Topic :: Software Development :: Libraries :: Python Modules",
         "Topic :: Software Development :: Testing",
         ],
-
+    test_suite='zope.testing.tests',
     **extra)

Modified: zope.testing/tags/regebro-python3-reloaded/src/zope/testing/testrunner/runner.py
===================================================================
--- zope.testing/tags/regebro-python3-reloaded/src/zope/testing/testrunner/runner.py	2009-12-07 14:09:42 UTC (rev 106249)
+++ zope.testing/tags/regebro-python3-reloaded/src/zope/testing/testrunner/runner.py	2009-12-07 16:02:04 UTC (rev 106250)
@@ -23,7 +23,9 @@
 import gc
 import Queue
 import re
+import os
 import sys
+import tempfile
 import threading
 import time
 import traceback
@@ -380,23 +382,45 @@
     def runTest(self):
         "Layer set up failure."
 
+def make_testrunner_script(filename):
+    #!/opt/python24/bin/python
 
+    template = """
+import sys
+sys.path = %s
+
+import os
+os.chdir('%s')
+
+import zope.testing.testrunner
+if __name__ == '__main__':
+    zope.testing.testrunner.run([
+        '--test-path', '%s',
+        ])
+"""
+    scriptfile = open(filename, 'w')
+    script = template % (sys.path, os.path.abspath(os.curdir), sys.path[0])
+    scriptfile.write(script)
+    scriptfile.close()
+
 def spawn_layer_in_subprocess(result, script_parts, options, features,
                               layer_name, layer, failures, errors,
                               resume_number):
     output = options.output
 
     try:
+        fd, temprunner = tempfile.mkstemp(prefix='temprunner', text=True)
+        make_testrunner_script(temprunner)
+        
         # BBB
         if script_parts is None:
             script_parts = sys.argv[0:1]
-        args = [sys.executable]
-        args.extend(script_parts)
+        args = [sys.executable, temprunner]
         args.extend(['--resume-layer', layer_name, str(resume_number)])
         for d in options.testrunner_defaults:
             args.extend(['--default', d])
 
-        args.extend(options.original_testrunner_args[1:])
+        args.extend(options.original_testrunner_args[2:])
 
         # this is because of a bug in Python (http://www.python.org/sf/900092)
         if (options.profile == 'hotshot'
@@ -461,6 +485,7 @@
             errors.append((erriter.next().strip(), None))
 
     finally:
+        os.unlink(temprunner)
         result.done = True
 
 

Modified: zope.testing/tags/regebro-python3-reloaded/src/zope/testing/tests.py
===================================================================
--- zope.testing/tags/regebro-python3-reloaded/src/zope/testing/tests.py	2009-12-07 14:09:42 UTC (rev 106249)
+++ zope.testing/tags/regebro-python3-reloaded/src/zope/testing/tests.py	2009-12-07 16:02:04 UTC (rev 106250)
@@ -39,3 +39,9 @@
         doctest.DocFileSuite('setupstack.txt'),
         doctest.DocTestSuite(doctest, optionflags=doctest.INTERPRET_FOOTNOTES),
         ))
+
+def additional_tests(): # For setuptools testrunner
+    from zope.testing.testrunner import tests
+    res = test_suite()
+    res.addTests(tests.test_suite())
+    return res
\ No newline at end of file
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.