[py-svn] r48128 - in py/branch/reporter-merge/py/test: . rsession rsession/testing testing

fijal at codespeak.net fijal at codespeak.net
Sun Oct 28 14:24:42 CET 2007


Author: fijal
Date: Sun Oct 28 14:24:41 2007
New Revision: 48128

Modified:
   py/branch/reporter-merge/py/test/config.py
   py/branch/reporter-merge/py/test/reporter.py
   py/branch/reporter-merge/py/test/rsession/rsession.py
   py/branch/reporter-merge/py/test/rsession/testing/test_rsession.py
   py/branch/reporter-merge/py/test/session.py
   py/branch/reporter-merge/py/test/testing/test_collect.py
   py/branch/reporter-merge/py/test/testing/test_reporter.py
   py/branch/reporter-merge/py/test/testing/test_session.py
Log:
Small regactoring for simple usage of default reporter class


Modified: py/branch/reporter-merge/py/test/config.py
==============================================================================
--- py/branch/reporter-merge/py/test/config.py	(original)
+++ py/branch/reporter-merge/py/test/config.py	Sun Oct 28 14:24:41 2007
@@ -134,10 +134,10 @@
         except AttributeError:
             return self._conftest.rget(name, path)
 
-    def initsession(self, reporter=None):
+    def initsession(self):
         """ return an initialized session object. """
         cls = self._getsessionclass()
-        session = cls(self, reporter)
+        session = cls(self)
         session.fixoptions()
         return session
 

Modified: py/branch/reporter-merge/py/test/reporter.py
==============================================================================
--- py/branch/reporter-merge/py/test/reporter.py	(original)
+++ py/branch/reporter-merge/py/test/reporter.py	Sun Oct 28 14:24:41 2007
@@ -18,7 +18,7 @@
 
 from time import time as now
 
-def choose_reporter(config):
+def choose_reporter(reporterclass, config):
     option = config.option
     if option.startserver or option.runbrowser:
         from py.__.test.rsession.web import WebReporter
@@ -27,10 +27,7 @@
         from py.__.test.rsession.rest import RestReporter
         return RestReporter
     else:
-        if option.dist:
-            return RemoteReporter
-        else:
-            return LocalReporter
+        return reporterclass
 
 class TestReporter(object):
     """ Simple test reporter which tracks failures

Modified: py/branch/reporter-merge/py/test/rsession/rsession.py
==============================================================================
--- py/branch/reporter-merge/py/test/rsession/rsession.py	(original)
+++ py/branch/reporter-merge/py/test/rsession/rsession.py	Sun Oct 28 14:24:41 2007
@@ -20,6 +20,8 @@
 class RSession(AbstractSession):
     """ Remote version of session
     """
+    reporter = RemoteReporter
+    
     def fixoptions(self):
         super(RSession, self).fixoptions()
         option = self.config.option 
@@ -41,13 +43,12 @@
             print "see also: http://codespeak.net/py/current/doc/test.html#automated-distributed-testing"
             raise SystemExit
 
-    def main(self):
+    def main(self, reporter=None):
         
         """ main loop for running tests. """
         config = self.config
         hm = HostManager(config)
-        reporter, checkfun = self.init_reporter(self.reporter, config,
-                                                hm.hosts)
+        reporter, checkfun = self.init_reporter(reporter, config, hm.hosts)
 
         reporter(repevent.TestStarted(hm.hosts, self.config,
                                       hm.roots))

Modified: py/branch/reporter-merge/py/test/rsession/testing/test_rsession.py
==============================================================================
--- py/branch/reporter-merge/py/test/rsession/testing/test_rsession.py	(original)
+++ py/branch/reporter-merge/py/test/rsession/testing/test_rsession.py	Sun Oct 28 14:24:41 2007
@@ -35,8 +35,8 @@
         """))
         config = py.test.config._reparse([self.source.join("sub"), '-x'])
         allevents = []
-        rsession = RSession(config, allevents.append)
-        rsession.main()
+        rsession = RSession(config)
+        rsession.main(allevents.append)
         testevents = [x for x in allevents 
                         if isinstance(x, repevent.ReceivedItemOutcome)]
         assert len(testevents) == 3
@@ -70,8 +70,8 @@
         assert config.topdir == tmpdir
         assert not tmpdir.join("__init__.py").check()
         allevents = []
-        rsession = RSession(config, allevents.append)
-        rsession.main()
+        rsession = RSession(config)
+        rsession.main(allevents.append)
         testevents = [x for x in allevents 
                         if isinstance(x, repevent.ReceivedItemOutcome)]
         assert len(testevents)
@@ -176,8 +176,8 @@
         """)
         
         config = py.test.config._reparse([tmpdir])
-        rsession = RSession(config, allevents.append)
-        rsession.main()
+        rsession = RSession(config)
+        rsession.main(allevents.append)
         testevents = [x for x in allevents 
                         if isinstance(x, repevent.ReceivedItemOutcome)]
         passevents = [x for x in testevents if x.outcome.passed]

Modified: py/branch/reporter-merge/py/test/session.py
==============================================================================
--- py/branch/reporter-merge/py/test/session.py	(original)
+++ py/branch/reporter-merge/py/test/session.py	Sun Oct 28 14:24:41 2007
@@ -4,6 +4,7 @@
 from py.__.test.reporter import choose_reporter, TestReporter
 from py.__.test import repevent
 from py.__.test.outcome import SerializableOutcome, ReprOutcome
+from py.__.test.reporter import LocalReporter
 
 """ The session implementation - reporter version:
 
@@ -47,10 +48,9 @@
 class AbstractSession(object): 
     """ An abstract session executes collectors/items through a runner. 
     """
-    def __init__(self, config, reporter=None): 
+    def __init__(self, config):
         self.config = config
         self._keyword = config.option.keyword
-        self.reporter = reporter
 
     def fixoptions(self):
         """ check, fix and determine conflicting options. """
@@ -77,7 +77,8 @@
 
     def init_reporter(self, reporter, config, hosts):
         if reporter is None:
-            reporter = choose_reporter(config)(config, hosts)
+            reporter = choose_reporter(self.reporterclass, config)\
+                       (config, hosts)
         else:
             reporter = TestReporter(reporter)
         checkfun = lambda : self.config.option.exitfirst and \
@@ -99,6 +100,8 @@
         A Session gets test Items from Collectors, executes the
         Items and sends the Outcome to the Reporter.
     """
+    reporterclass = LocalReporter
+    
     def shouldclose(self): 
         return False
 
@@ -116,11 +119,11 @@
             py.magic.revoke(assertion=1)
         self.reporter(repevent.TestFinished())
     
-    def main(self):
+    def main(self, reporter=None):
         """ main loop for running tests. """
         config = self.config
-        self.reporter, self.shouldstop = self.init_reporter(self.reporter,
-                                                config, ['localhost'])
+        self.reporter, shouldstop = self.init_reporter(reporter,
+                                                       config, ['localhost'])
 
         colitems = self.config.getcolitems()
         self.header(colitems)
@@ -131,7 +134,7 @@
             while 1:
                 try:
                     item = itemgenerator.next()
-                    if self.shouldstop():
+                    if shouldstop():
                         return
                     outcome = self.run(item)
                     reporter(repevent.ReceivedItemOutcome(None, item, outcome))

Modified: py/branch/reporter-merge/py/test/testing/test_collect.py
==============================================================================
--- py/branch/reporter-merge/py/test/testing/test_collect.py	(original)
+++ py/branch/reporter-merge/py/test/testing/test_collect.py	Sun Oct 28 14:24:41 2007
@@ -211,8 +211,8 @@
     try: 
         config = py.test.config._reparse([]) 
         all = []
-        session = config._getsessionclass()(config, all.append)
-        session.main()
+        session = config._getsessionclass()(config)
+        session.main(all.append)
         l = getpassed(all)
         assert len(l) == 2
     finally: 
@@ -221,8 +221,8 @@
     # test that running the file directly works 
     config = py.test.config._reparse([str(checkfile)]) 
     all = []
-    session = config._getsessionclass()(config, all.append)
-    session.main()
+    session = config._getsessionclass()(config)
+    session.main(all.append)
     l = getpassed(all)
     assert len(l) == 2
 
@@ -258,8 +258,8 @@
     try: 
         config = py.test.config._reparse([]) 
         all = []
-        session = config._getsessionclass()(config, all.append)
-        session.main()
+        session = config._getsessionclass()(config)
+        session.main(all.append)
         l = getpassed(all)
         assert len(l) == 1
     finally: 
@@ -268,8 +268,8 @@
     # test that running the file directly works 
     config = py.test.config._reparse([str(checkfile)]) 
     all = []
-    session = config._getsessionclass()(config, all.append)
-    session.main()
+    session = config._getsessionclass()(config)
+    session.main(all.append)
     l = getpassed(all)
     assert len(l) == 1
 
@@ -294,8 +294,8 @@
     """))
     config = py.test.config._reparse([o])
     all = []
-    session = config.initsession(all.append)
-    session.main()
+    session = config.initsession()
+    session.main(all.append)
     l = getpassed(all)
     assert len(l) == 7
 
@@ -327,8 +327,8 @@
     """))
     config = py.test.config._reparse([o])
     all = []
-    session = config.initsession(all.append)
-    session.main()
+    session = config.initsession()
+    session.main(all.append)
     l = getpassed(all)
     assert len(l) == 4
     

Modified: py/branch/reporter-merge/py/test/testing/test_reporter.py
==============================================================================
--- py/branch/reporter-merge/py/test/testing/test_reporter.py	(original)
+++ py/branch/reporter-merge/py/test/testing/test_reporter.py	Sun Oct 28 14:24:41 2007
@@ -257,12 +257,10 @@
     from py.__.test.rsession.web import WebReporter
     from py.__.test.rsession.rest import RestReporter
     choices = [
-        (['-d'], RemoteReporter),
         (['-d', '--rest'], RestReporter),
-        ([], LocalReporter),
         (['-w'], WebReporter),
         (['-r'], WebReporter)]
     for opts, reporter in choices:
         config = py.test.config._reparse(['xxx'] + opts)
-        assert choose_reporter(config) is reporter
+        assert choose_reporter(None, config) is reporter
 

Modified: py/branch/reporter-merge/py/test/testing/test_session.py
==============================================================================
--- py/branch/reporter-merge/py/test/testing/test_session.py	(original)
+++ py/branch/reporter-merge/py/test/testing/test_session.py	Sun Oct 28 14:24:41 2007
@@ -62,8 +62,8 @@
 def runfiletest(opts):
     config = py.test.config._reparse(opts + [datadir/'filetest.py'])
     all = []
-    session = config.initsession(all.append)
-    session.main()
+    session = config.initsession()
+    session.main(all.append)
     assert len(getfailed(all)) == 2 
     assert not getskipped(all)
 
@@ -77,8 +77,8 @@
             config = py.test.config._reparse([datadir/'filetest.py', 
                                                    '-s', '-k', keyword])
             all = []
-            session = config._getsessionclass()(config, all.append)
-            session.main()
+            session = config._getsessionclass()(config)
+            session.main(all.append)
             outcomes = [i for i in all if isinstance(i, ReceivedItemOutcome)]
             assert len(getfailed(all)) == 1 
             assert outcomes[0].item.name == name
@@ -108,8 +108,8 @@
                         'TestClass test_2', 'xxx TestClass test_2',): 
             config = py.test.config._reparse([o, '-s', '-k', keyword])
             all = []
-            session = config._getsessionclass()(config, all.append)
-            session.main()
+            session = config._getsessionclass()(config)
+            session.main(all.append)
             print "keyword", repr(keyword)
             l = getpassed(all)
             outcomes = [i for i in all if isinstance(i, ReceivedItemOutcome)]
@@ -122,8 +122,8 @@
         config = py.test.config._reparse([datadir/'testmore.py', 
                                           '-j', '-k', "test_two"])
         all = []
-        session = config._getsessionclass()(config, all.append)
-        session.main()
+        session = config._getsessionclass()(config)
+        session.main(all.append)
         assert len(getpassed(all)) == 2
         assert len(getskipped(all)) == 1
         
@@ -134,8 +134,8 @@
         from py.__.test.terminal.out import getout
         config = py.test.config._reparse(list(args))
         all = []
-        session = Session(config, all.append)
-        session.main()
+        session = Session(config)
+        session.main(all.append)
         return session, all
 
     def test_terminal(self): 
@@ -326,8 +326,8 @@
     tmp.ensure("__init__.py")
     config = py.test.config._reparse([tmp])
     all = []
-    session = config.initsession(all.append)
-    session.main()
+    session = config.initsession()
+    session.main(all.append)
     skips = getskipped(all)
     assert len(skips) == 2
     assert str(skips[0].skipped.value) == 'Broken: stuff'



More information about the pytest-commit mailing list