[svn r63571] kill another few test "events"
--HG-- branch : trunk
This commit is contained in:
parent
45e0499f10
commit
53491b1531
|
@ -45,8 +45,8 @@ class LoopState(object):
|
||||||
self.dsession.handle_crashitem(crashitem, node)
|
self.dsession.handle_crashitem(crashitem, node)
|
||||||
self.colitems.extend(pending[1:])
|
self.colitems.extend(pending[1:])
|
||||||
|
|
||||||
def pyevent__rescheduleitems(self, event):
|
def pyevent__rescheduleitems(self, items):
|
||||||
self.colitems.extend(event.items)
|
self.colitems.extend(items)
|
||||||
self.dowork = False # avoid busywait
|
self.dowork = False # avoid busywait
|
||||||
|
|
||||||
class DSession(Session):
|
class DSession(Session):
|
||||||
|
@ -175,7 +175,7 @@ class DSession(Session):
|
||||||
if isinstance(next, py.test.collect.Item):
|
if isinstance(next, py.test.collect.Item):
|
||||||
senditems.append(next)
|
senditems.append(next)
|
||||||
else:
|
else:
|
||||||
self.bus.notify("collectionstart", event.CollectionStart(next))
|
self.bus.notify("collectionstart", next)
|
||||||
self.queueevent("collectionreport", basic_collect_report(next))
|
self.queueevent("collectionreport", basic_collect_report(next))
|
||||||
if self.config.option.dist == "each":
|
if self.config.option.dist == "each":
|
||||||
self.senditems_each(senditems)
|
self.senditems_each(senditems)
|
||||||
|
@ -202,7 +202,7 @@ class DSession(Session):
|
||||||
tosend[:] = tosend[room:] # update inplace
|
tosend[:] = tosend[room:] # update inplace
|
||||||
if tosend:
|
if tosend:
|
||||||
# we have some left, give it to the main loop
|
# we have some left, give it to the main loop
|
||||||
self.queueevent("rescheduleitems", event.RescheduleItems(tosend))
|
self.queueevent("rescheduleitems", tosend)
|
||||||
|
|
||||||
def senditems_load(self, tosend):
|
def senditems_load(self, tosend):
|
||||||
if not tosend:
|
if not tosend:
|
||||||
|
@ -224,7 +224,7 @@ class DSession(Session):
|
||||||
break
|
break
|
||||||
if tosend:
|
if tosend:
|
||||||
# we have some left, give it to the main loop
|
# we have some left, give it to the main loop
|
||||||
self.queueevent("rescheduleitems", event.RescheduleItems(tosend))
|
self.queueevent("rescheduleitems", tosend)
|
||||||
|
|
||||||
def removeitem(self, item, node):
|
def removeitem(self, item, node):
|
||||||
if item not in self.item2nodes:
|
if item not in self.item2nodes:
|
||||||
|
|
|
@ -101,8 +101,8 @@ class TestDSession:
|
||||||
assert session.node2pending[node2] == sent2
|
assert session.node2pending[node2] == sent2
|
||||||
name, args, kwargs = session.queue.get(block=False)
|
name, args, kwargs = session.queue.get(block=False)
|
||||||
assert name == "rescheduleitems"
|
assert name == "rescheduleitems"
|
||||||
ev, = args
|
items, = args
|
||||||
assert ev.items == [item]
|
assert items == [item]
|
||||||
|
|
||||||
def test_keyboardinterrupt(self, testdir):
|
def test_keyboardinterrupt(self, testdir):
|
||||||
item = testdir.getitem("def test_func(): pass")
|
item = testdir.getitem("def test_func(): pass")
|
||||||
|
@ -125,9 +125,8 @@ class TestDSession:
|
||||||
session = DSession(item.config)
|
session = DSession(item.config)
|
||||||
node = MockNode()
|
node = MockNode()
|
||||||
session.addnode(node)
|
session.addnode(node)
|
||||||
ev = event.RescheduleItems([item])
|
|
||||||
loopstate = session._initloopstate([])
|
loopstate = session._initloopstate([])
|
||||||
session.queueevent("rescheduleitems", ev)
|
session.queueevent("rescheduleitems", [item])
|
||||||
session.loop_once(loopstate)
|
session.loop_once(loopstate)
|
||||||
# check that RescheduleEvents are not immediately
|
# check that RescheduleEvents are not immediately
|
||||||
# rescheduled if there are no nodes
|
# rescheduled if there are no nodes
|
||||||
|
@ -298,17 +297,15 @@ class TestDSession:
|
||||||
remaining = session.filteritems(items)
|
remaining = session.filteritems(items)
|
||||||
assert remaining == []
|
assert remaining == []
|
||||||
|
|
||||||
event = evrec.events[-1]
|
event = evrec.getevents("deselected")[-1]
|
||||||
assert event.name == "deselected"
|
assert event.items == items
|
||||||
assert event.args[0].items == items
|
|
||||||
|
|
||||||
modcol.config.option.keyword = "test_fail"
|
modcol.config.option.keyword = "test_fail"
|
||||||
remaining = session.filteritems(items)
|
remaining = session.filteritems(items)
|
||||||
assert remaining == [items[0]]
|
assert remaining == [items[0]]
|
||||||
|
|
||||||
event = evrec.events[-1]
|
event = evrec.getevents("deselected")[-1]
|
||||||
assert event.name == "deselected"
|
assert event.items == [items[1]]
|
||||||
assert event.args[0].items == [items[1]]
|
|
||||||
|
|
||||||
def test_testnodedown_shutdown_after_completion(self, testdir):
|
def test_testnodedown_shutdown_after_completion(self, testdir):
|
||||||
item = testdir.getitem("def test_func(): pass")
|
item = testdir.getitem("def test_func(): pass")
|
||||||
|
|
|
@ -12,9 +12,6 @@ class BaseEvent(object):
|
||||||
for key, value in self.__dict__.items()]
|
for key, value in self.__dict__.items()]
|
||||||
return "<%s %s>" %(self.__class__.__name__, " ".join(l),)
|
return "<%s %s>" %(self.__class__.__name__, " ".join(l),)
|
||||||
|
|
||||||
def timestamp():
|
|
||||||
return time.time()
|
|
||||||
|
|
||||||
class NOP(BaseEvent):
|
class NOP(BaseEvent):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -22,10 +19,6 @@ class NOP(BaseEvent):
|
||||||
# Events related to collecting and executing test Items
|
# Events related to collecting and executing test Items
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
|
|
||||||
class Deselected(BaseEvent):
|
|
||||||
def __init__(self, items):
|
|
||||||
self.items = items
|
|
||||||
|
|
||||||
class BaseReport(BaseEvent):
|
class BaseReport(BaseEvent):
|
||||||
def toterminal(self, out):
|
def toterminal(self, out):
|
||||||
longrepr = self.longrepr
|
longrepr = self.longrepr
|
||||||
|
@ -73,9 +66,6 @@ class ItemTestReport(BaseReport):
|
||||||
self.shortrepr = shortrepr
|
self.shortrepr = shortrepr
|
||||||
self.longrepr = longrepr
|
self.longrepr = longrepr
|
||||||
|
|
||||||
class CollectionStart(BaseEvent):
|
|
||||||
def __init__(self, collector):
|
|
||||||
self.collector = collector
|
|
||||||
|
|
||||||
class CollectionReport(BaseReport):
|
class CollectionReport(BaseReport):
|
||||||
""" Collection Report. """
|
""" Collection Report. """
|
||||||
|
@ -108,30 +98,6 @@ class LooponfailingInfo(BaseEvent):
|
||||||
self.failreports = failreports
|
self.failreports = failreports
|
||||||
self.rootdirs = rootdirs
|
self.rootdirs = rootdirs
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
|
||||||
# Distributed Testing Events
|
|
||||||
# ----------------------------------------------------------------------
|
|
||||||
|
|
||||||
class RescheduleItems(BaseEvent):
|
|
||||||
def __init__(self, items):
|
|
||||||
self.items = items
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------
|
|
||||||
# Events related to rsyncing
|
|
||||||
# ---------------------------------------------------------------------
|
|
||||||
|
|
||||||
class HostRSyncing(BaseEvent):
|
|
||||||
def __init__(self, host, root, remotepath, synced):
|
|
||||||
self.host = host
|
|
||||||
self.root = root
|
|
||||||
self.remotepath = remotepath
|
|
||||||
self.synced = synced
|
|
||||||
|
|
||||||
class HostRSyncRootReady(BaseEvent):
|
|
||||||
def __init__(self, host, root):
|
|
||||||
self.host = host
|
|
||||||
self.root = root
|
|
||||||
|
|
||||||
# make all eventclasses available on BaseEvent so that
|
# make all eventclasses available on BaseEvent so that
|
||||||
# consumers of events can easily filter by
|
# consumers of events can easily filter by
|
||||||
# 'isinstance(event, event.Name)' checks
|
# 'isinstance(event, event.Name)' checks
|
||||||
|
|
|
@ -82,10 +82,10 @@ class Events:
|
||||||
def pyevent__itemtestreport(self, event):
|
def pyevent__itemtestreport(self, event):
|
||||||
""" test has been run. """
|
""" test has been run. """
|
||||||
|
|
||||||
def pyevent__deselected(self, event):
|
def pyevent__deselected(self, items):
|
||||||
""" item has been dselected. """
|
""" collected items that were deselected (by keyword). """
|
||||||
|
|
||||||
def pyevent__collectionstart(self, event):
|
def pyevent__collectionstart(self, collector):
|
||||||
""" collector starts collecting. """
|
""" collector starts collecting. """
|
||||||
|
|
||||||
def pyevent__collectionreport(self, event):
|
def pyevent__collectionreport(self, event):
|
||||||
|
|
|
@ -158,8 +158,8 @@ class TerminalReporter:
|
||||||
if self.config.option.debug:
|
if self.config.option.debug:
|
||||||
self.write_sep("!", "RESCHEDULING %s " %(event.items,))
|
self.write_sep("!", "RESCHEDULING %s " %(event.items,))
|
||||||
|
|
||||||
def pyevent__deselected(self, event):
|
def pyevent__deselected(self, items):
|
||||||
self.stats.setdefault('deselected', []).append(event)
|
self.stats.setdefault('deselected', []).append(items)
|
||||||
|
|
||||||
def pyevent__itemtestreport(self, event):
|
def pyevent__itemtestreport(self, event):
|
||||||
fspath = event.colitem.fspath
|
fspath = event.colitem.fspath
|
||||||
|
@ -309,8 +309,8 @@ class CollectonlyReporter:
|
||||||
def outindent(self, line):
|
def outindent(self, line):
|
||||||
self.out.line(self.indent + str(line))
|
self.out.line(self.indent + str(line))
|
||||||
|
|
||||||
def pyevent__collectionstart(self, event):
|
def pyevent__collectionstart(self, collector):
|
||||||
self.outindent(event.collector)
|
self.outindent(collector)
|
||||||
self.indent += self.INDENT
|
self.indent += self.INDENT
|
||||||
|
|
||||||
def pyevent__itemstart(self, item, node=None):
|
def pyevent__itemstart(self, item, node=None):
|
||||||
|
@ -627,7 +627,7 @@ class TestCollectonly:
|
||||||
rep = CollectonlyReporter(modcol.config, out=linecomp.stringio)
|
rep = CollectonlyReporter(modcol.config, out=linecomp.stringio)
|
||||||
modcol.config.bus.register(rep)
|
modcol.config.bus.register(rep)
|
||||||
indent = rep.indent
|
indent = rep.indent
|
||||||
rep.config.bus.notify("collectionstart", event.CollectionStart(modcol))
|
rep.config.bus.notify("collectionstart", modcol)
|
||||||
linecomp.assert_contains_lines([
|
linecomp.assert_contains_lines([
|
||||||
"<Module 'test_collectonly_basic.py'>"
|
"<Module 'test_collectonly_basic.py'>"
|
||||||
])
|
])
|
||||||
|
|
|
@ -42,7 +42,7 @@ class Session(object):
|
||||||
yield next
|
yield next
|
||||||
else:
|
else:
|
||||||
assert isinstance(next, Collector)
|
assert isinstance(next, Collector)
|
||||||
notify("collectionstart", event.CollectionStart(next))
|
notify("collectionstart", next)
|
||||||
ev = basic_collect_report(next)
|
ev = basic_collect_report(next)
|
||||||
if ev.passed:
|
if ev.passed:
|
||||||
for x in self.genitems(ev.result, keywordexpr):
|
for x in self.genitems(ev.result, keywordexpr):
|
||||||
|
@ -67,7 +67,7 @@ class Session(object):
|
||||||
continue
|
continue
|
||||||
remaining.append(colitem)
|
remaining.append(colitem)
|
||||||
if deselected:
|
if deselected:
|
||||||
self.bus.notify("deselected", event.Deselected(deselected, ))
|
self.bus.notify("deselected", deselected)
|
||||||
if self.config.option.keyword.endswith(":"):
|
if self.config.option.keyword.endswith(":"):
|
||||||
self._nomatch = True
|
self._nomatch = True
|
||||||
return remaining
|
return remaining
|
||||||
|
|
|
@ -74,7 +74,7 @@ class TestKeywordSelection:
|
||||||
passed, skipped, failed = sorter.listoutcomes()
|
passed, skipped, failed = sorter.listoutcomes()
|
||||||
assert len(failed) == 1
|
assert len(failed) == 1
|
||||||
assert failed[0].colitem.name == name
|
assert failed[0].colitem.name == name
|
||||||
assert len(sorter.getnamed('deselected')) == 1
|
assert len(sorter.getevents('deselected')) == 1
|
||||||
|
|
||||||
for keyword in ['test_one', 'est_on']:
|
for keyword in ['test_one', 'est_on']:
|
||||||
#yield check, keyword, 'test_one'
|
#yield check, keyword, 'test_one'
|
||||||
|
@ -102,7 +102,7 @@ class TestKeywordSelection:
|
||||||
passed, skipped, failed = sorter.listoutcomes()
|
passed, skipped, failed = sorter.listoutcomes()
|
||||||
assert len(passed) == 1
|
assert len(passed) == 1
|
||||||
assert passed[0].colitem.name == "test_2"
|
assert passed[0].colitem.name == "test_2"
|
||||||
dlist = sorter.getnamed("deselected")
|
dlist = sorter.getevents("deselected")
|
||||||
assert len(dlist) == 1
|
assert len(dlist) == 1
|
||||||
assert dlist[0].items[0].name == 'test_1'
|
assert dlist[0].items[0].name == 'test_1'
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ class TestKeywordSelection:
|
||||||
passed, skipped, failed = sorter.listoutcomes()
|
passed, skipped, failed = sorter.listoutcomes()
|
||||||
assert len(passed) == 2
|
assert len(passed) == 2
|
||||||
assert not failed
|
assert not failed
|
||||||
dlist = sorter.getnamed("deselected")
|
dlist = sorter.getevents("deselected")
|
||||||
assert len(dlist) == 1
|
assert len(dlist) == 1
|
||||||
item = dlist[0].items[0]
|
item = dlist[0].items[0]
|
||||||
assert item.name == "test_one"
|
assert item.name == "test_one"
|
||||||
|
|
|
@ -29,7 +29,7 @@ class SessionTests:
|
||||||
assert len(itemstarted) == 4
|
assert len(itemstarted) == 4
|
||||||
colstarted = sorter.getevents("collectionstart")
|
colstarted = sorter.getevents("collectionstart")
|
||||||
assert len(colstarted) == 1
|
assert len(colstarted) == 1
|
||||||
col = colstarted[0].event.collector
|
col = colstarted[0].collector
|
||||||
assert isinstance(col, py.test.collect.Module)
|
assert isinstance(col, py.test.collect.Module)
|
||||||
|
|
||||||
def test_nested_import_error(self, testdir):
|
def test_nested_import_error(self, testdir):
|
||||||
|
@ -204,7 +204,7 @@ class TestNewSession(SessionTests):
|
||||||
itemstarted = sorter.getnamed("itemstart")
|
itemstarted = sorter.getnamed("itemstart")
|
||||||
assert len(itemstarted) == 3
|
assert len(itemstarted) == 3
|
||||||
assert not sorter.getnamed("itemtestreport")
|
assert not sorter.getnamed("itemtestreport")
|
||||||
started = sorter.getnamed("collectionstart")
|
started = sorter.getevents("collectionstart")
|
||||||
finished = sorter.getnamed("collectionreport")
|
finished = sorter.getnamed("collectionreport")
|
||||||
assert len(started) == len(finished)
|
assert len(started) == len(finished)
|
||||||
assert len(started) == 8
|
assert len(started) == 8
|
||||||
|
|
Loading…
Reference in New Issue