[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