Ejemplo n.º 1
0
    def test_nopending_but_collection_remains(self, testdir):
        modcol = testdir.getmodulecol("""
            def test_fail(): 
                assert 0
            def test_pass(): 
                pass
        """)
        session = DSession(modcol.config)
        node = MockNode()
        session.addnode(node)

        colreport = basic_collect_report(modcol)
        item1, item2 = colreport.result
        session.senditems_load([item1])
        # node2pending will become empty when the loop sees the report 
        rep = run(item1, node)

        session.queueevent("itemtestreport", run(item1, node)) 

        # but we have a collection pending
        session.queueevent("collectionreport", colreport) 

        loopstate = session._initloopstate([])
        session.loop_once(loopstate)
        assert loopstate.exitstatus is None, "loop did not care for collection report"
        assert not loopstate.colitems 
        session.loop_once(loopstate)
        assert loopstate.colitems == colreport.result
        assert loopstate.exitstatus is None, "loop did not care for colitems"
Ejemplo n.º 2
0
    def test_exit_on_first_failing(self, testdir):
        modcol = testdir.getmodulecol("""
            def test_fail(): 
                assert 0
            def test_pass(): 
                pass
        """)
        modcol.config.option.exitfirst = True
        session = DSession(modcol.config)
        node = MockNode()
        session.addnode(node)
        items = basic_collect_report(modcol).result

        # trigger testing  - this sends tests to the node
        session.triggertesting(items)

        # run tests ourselves and produce reports 
        ev1 = run(items[0], node)
        ev2 = run(items[1], node)
        session.queueevent("itemtestreport", ev1) # a failing one
        session.queueevent("itemtestreport", ev2)
        # now call the loop
        loopstate = session._initloopstate(items)
        session.loop_once(loopstate)
        assert loopstate.testsfailed
        assert loopstate.shuttingdown
Ejemplo n.º 3
0
 def triggertesting(self, colitems):
     colitems = self.filteritems(colitems)
     senditems = []
     for next in colitems:
         if isinstance(next, Item):
             senditems.append(next)
         else:
             ev = basic_collect_report(next)
             self.bus.notify(event.CollectionStart(next))
             self.queue.put(ev)
     self.senditems(senditems)
 def test_skip_at_module_scope(self, testdir):
     col = testdir.getmodulecol("""
         import py
         py.test.skip("hello")
         def test_func():
             pass
     """)
     ev = basic_collect_report(col)
     assert not ev.failed 
     assert not ev.passed 
     assert ev.skipped 
Ejemplo n.º 5
0
 def triggertesting(self, colitems):
     colitems = self.filteritems(colitems)
     senditems = []
     for next in colitems:
         if isinstance(next, py.test.collect.Item):
             senditems.append(next)
         else:
             self.bus.notify("collectionstart", event.CollectionStart(next))
             self.queueevent("collectionreport", basic_collect_report(next))
     if self.config.option.dist == "each":
         self.senditems_each(senditems)
     else:
         # XXX assert self.config.option.dist == "load"
         self.senditems_load(senditems)
 def test_collect_result(self, testdir):
     col = testdir.getmodulecol("""
         def test_func1():
             pass
         class TestClass:
             pass
     """)
     ev = basic_collect_report(col)
     assert not ev.failed
     assert not ev.skipped
     assert ev.passed 
     res = ev.result 
     assert len(res) == 2
     assert res[0].name == "test_func1" 
     assert res[1].name == "TestClass"