[py-svn] r10580 - in py/branch/py-collect/test: . terminal testing

hpk at codespeak.net hpk at codespeak.net
Wed Apr 13 15:57:20 CEST 2005


Author: hpk
Date: Wed Apr 13 15:57:20 2005
New Revision: 10580

Modified:
   py/branch/py-collect/test/session.py
   py/branch/py-collect/test/terminal/out.py
   py/branch/py-collect/test/terminal/remote.py
   py/branch/py-collect/test/terminal/terminal.py
   py/branch/py-collect/test/testing/test_session.py
Log:
unifying Session.main() signature & invocation 
making getout() a bit smarter



Modified: py/branch/py-collect/test/session.py
==============================================================================
--- py/branch/py-collect/test/session.py	(original)
+++ py/branch/py-collect/test/session.py	Wed Apr 13 15:57:20 2005
@@ -36,9 +36,9 @@
     def warning(self, msg): 
         raise Warning(msg) 
 
-    def main(self, *args): 
+    def main(self, args): 
         """ main loop for running tests. """
-        colitems = map2colitems(args) 
+        colitems = self._map2colitems(args) 
         try:
             self.header(colitems) 
             try:
@@ -52,7 +52,6 @@
         return [(str(item.listchain()[0].fspath), item.listnames())
                 for item, res in self.getresults(py.test.Item.Failed)]
 
-
     def runtraced(self, colitem):
         if self.shouldclose(): 
             raise SystemExit, "received external close signal" 
@@ -105,18 +104,19 @@
                     self.runtraced(obj) 
         return res 
 
-def map2colitems(items): 
-    # first convert all path objects into collectors 
-    from py.__impl__.test.collect import getfscollector 
-    colitems = []
-    for item in items: 
-        if isinstance(item, (list, tuple)): 
-            colitems.extend(map2colitems(item))
-        elif not isinstance(item, py.test.collect.Collector): 
-            colitems.append(getfscollector(item))
-        else:
-            colitems.append(item)
-    return colitems 
+    def _map2colitems(items): 
+        # first convert all path objects into collectors 
+        from py.__impl__.test.collect import getfscollector 
+        colitems = []
+        for item in items: 
+            if isinstance(item, (list, tuple)): 
+                colitems.extend(Session._map2colitems(item))
+            elif not isinstance(item, py.test.collect.Collector): 
+                colitems.append(getfscollector(item))
+            else:
+                colitems.append(item)
+        return colitems 
+    _map2colitems = staticmethod(_map2colitems) 
 
 class Exit(Exception):
     """ for immediate program exits without tracebacks and reporter/summary. """

Modified: py/branch/py-collect/test/terminal/out.py
==============================================================================
--- py/branch/py-collect/test/terminal/out.py	(original)
+++ py/branch/py-collect/test/terminal/out.py	Wed Apr 13 15:57:20 2005
@@ -1,6 +1,9 @@
 from __future__ import generators
 import sys
 import os
+import py
+
+from py.__impl__.execnet.channel import Channel 
 
 class Out(object):
     tty = False
@@ -67,7 +70,18 @@
 def getout(file):
     # XXX investigate further into terminal output, this is not enough
     #
-    if False and file.isatty():
+    if file is None: 
+        file = py.std.sys.stdout 
+    elif hasattr(file, 'send'): 
+        file = WriteFile(file) 
+    if hasattr(file, 'isatty') and file.isatty(): 
         return TerminalOut(file)
     else:
         return FileOut(file)
+
+class WriteFile(object): 
+    def __init__(self, writemethod): 
+        self.write = writemethod 
+    def flush(self): 
+        return 
+

Modified: py/branch/py-collect/test/terminal/remote.py
==============================================================================
--- py/branch/py-collect/test/terminal/remote.py	(original)
+++ py/branch/py-collect/test/terminal/remote.py	Wed Apr 13 15:57:20 2005
@@ -3,7 +3,6 @@
 from py.__impl__.execnet.channel import ChannelFile, receive2file
 from py.__impl__.test.config import configbasename
 from py.__impl__.test.collect import getfscollector
-from py.__impl__.test.session import map2colitems 
 import sys
 
 def checkpyfilechange(rootdir, statcache={}):

Modified: py/branch/py-collect/test/terminal/terminal.py
==============================================================================
--- py/branch/py-collect/test/terminal/terminal.py	(original)
+++ py/branch/py-collect/test/terminal/terminal.py	Wed Apr 13 15:57:20 2005
@@ -1,14 +1,12 @@
 import py
 
-from py.__impl__.test.terminal.out import getout 
 from time import time as now
 Item = py.test.Item
+from py.__impl__.test.terminal.out import getout 
 
 class TerminalSession(py.test.Session): 
     def __init__(self, config, file=None): 
         super(TerminalSession, self).__init__(config) 
-        if file is None: 
-            file = py.std.sys.stdout 
         self.out = getout(file) 
         self._started = {}
         self._opencollectors = []

Modified: py/branch/py-collect/test/testing/test_session.py
==============================================================================
--- py/branch/py-collect/test/testing/test_session.py	(original)
+++ py/branch/py-collect/test/testing/test_session.py	Wed Apr 13 15:57:20 2005
@@ -7,8 +7,8 @@
 class TestDefaultSession: 
     def test_simple(self): 
         config, args = py.test.Config.parse([]) 
-        session = config.getsessionclass()(config)
-        session.main(datadir / 'filetest.py')
+        session = config.getsessionclass()(config, py.std.sys.stdout)
+        session.main([datadir / 'filetest.py'])
         l = session.getresults(py.test.Item.Failed)
         assert len(l) == 2 
         l = session.getresults(py.test.Item.Passed)
@@ -38,7 +38,7 @@
         #f.flush()
 
     def test_terminal(self): 
-        self.session.main(datadir / 'filetest.py')
+        self.session.main([datadir / 'filetest.py'])
         out = self.file.getvalue() 
         #print "memo"
         #print self.session._memo
@@ -51,7 +51,7 @@
     def test_exit_first_problem(self): 
         session = self.session 
         session.config.option.exitfirstproblem = True 
-        session.main(str(datadir / 'filetest.py'))
+        session.main([str(datadir / 'filetest.py')])
         l = session.getresults(py.test.Item.Failed)
         assert len(l) == 1 
         l = session.getresults(py.test.Item.Passed)
@@ -60,7 +60,7 @@
     def test_collectonly(self): 
         session = self.session 
         session.config.option.collectonly = True 
-        session.main(str(datadir / 'filetest.py'))
+        session.main([str(datadir / 'filetest.py')])
         out = self.file.getvalue()
         #print out 
         l = session.getresults(py.test.Item.Failed)
@@ -88,7 +88,7 @@
         session = self.session 
         #session.config.option.nocapture = True 
         print "calling main", o
-        session.main(str(o)) 
+        session.main([str(o)]) 
         print "back from main", o
         out = self.file.getvalue() 
         #print out
@@ -103,7 +103,7 @@
                 yield None 
         """))
         session = self.session 
-        session.main(o) 
+        session.main([o]) 
         out = self.file.getvalue() 
         #print out
         i = out.find('TypeError') 



More information about the pytest-commit mailing list