119 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
| 
 | |
| from py.__.test.config import SetupState
 | |
| 
 | |
| class TestSetupState:
 | |
|     def test_setup(self, testdir):
 | |
|         ss = SetupState()
 | |
|         item = testdir.getitem("def test_func(): pass")
 | |
|         l = [1]
 | |
|         ss.prepare(item)
 | |
|         ss.addfinalizer(l.pop, colitem=item)
 | |
|         assert l
 | |
|         ss._pop_and_teardown()
 | |
|         assert not l 
 | |
| 
 | |
|     def test_setup_scope_None(self, testdir):
 | |
|         item = testdir.getitem("def test_func(): pass")
 | |
|         ss = SetupState()
 | |
|         l = [1]
 | |
|         ss.prepare(item)
 | |
|         ss.addfinalizer(l.pop, colitem=None)
 | |
|         assert l
 | |
|         ss._pop_and_teardown()
 | |
|         assert l 
 | |
|         ss._pop_and_teardown()
 | |
|         assert l 
 | |
|         ss.teardown_all()
 | |
|         assert not l 
 | |
| 
 | |
| class TestSetupStateFunctional:
 | |
|     disabled = True
 | |
|     def test_setup_ok(self, testdir):
 | |
|         item = testdir.getitem("""
 | |
|             def setup_module(mod):
 | |
|                 pass 
 | |
|             def test_func():
 | |
|                 pass
 | |
|         """)
 | |
|         reprec = testdir.getreportrecorder(item.config)
 | |
|         setup = SetupState()
 | |
|         res = setup.do_setup(item)
 | |
|         assert res
 | |
| 
 | |
|     def test_setup_fails(self, testdir):
 | |
|         item = testdir.getitem("""
 | |
|             def setup_module(mod):
 | |
|                 print "world"
 | |
|                 raise ValueError(42)
 | |
|             def test_func():
 | |
|                 pass
 | |
|         """)
 | |
|         reprec = testdir.getreportrecorder(item.config)
 | |
|         setup = SetupState()
 | |
|         res = setup.do_setup(item)
 | |
|         assert not res
 | |
|         rep = reprec.popcall(pytest_itemsetupreport).rep
 | |
|         assert rep.failed
 | |
|         assert not rep.skipped
 | |
|         assert rep.excrepr 
 | |
|         assert "42" in str(rep.excrepr)
 | |
|         assert rep.outerr[0].find("world") != -1
 | |
| 
 | |
|     def test_teardown_fails(self, testdir):
 | |
|         item = testdir.getitem("""
 | |
|             def test_func():
 | |
|                 pass
 | |
|             def teardown_function(func): 
 | |
|                 print "13"
 | |
|                 raise ValueError(25)
 | |
|         """)
 | |
|         reprec = testdir.getreportrecorder(item.config)
 | |
|         setup = SetupState()
 | |
|         res = setup.do_setup(item)
 | |
|         assert res 
 | |
|         rep = reprec.popcall(pytest_itemsetupreport).rep
 | |
|         assert rep.passed
 | |
|         setup.do_teardown(item)
 | |
|         rep = reprec.popcall(pytest_itemsetupreport).rep
 | |
|         assert rep.item == item 
 | |
|         assert rep.failed 
 | |
|         assert not rep.passed
 | |
|         assert "13" in rep.outerr[0]
 | |
|         assert "25" in str(rep.excrepr)
 | |
| 
 | |
|     def test_setupitem_skips(self, testdir):
 | |
|         item = testdir.getitem("""
 | |
|             import py
 | |
|             def setup_module(mod):
 | |
|                 py.test.skip("17")
 | |
|             def test_func():
 | |
|                 pass
 | |
|         """)
 | |
|         reprec = testdir.getreportrecorder(item.config)
 | |
|         setup = SetupState()
 | |
|         setup.do_setup(item)
 | |
|         rep = reprec.popcall(pytest_itemsetupreport).rep
 | |
|         assert not rep.failed
 | |
|         assert rep.skipped
 | |
|         assert rep.excrepr 
 | |
|         assert "17" in str(rep.excrepr)
 | |
| 
 | |
|     def test_runtest_ok(self, testdir):
 | |
|         item = testdir.getitem("def test_func(): pass")
 | |
|         reprec = testdir.getreportrecorder(item.config)
 | |
|         setup = SetupState()
 | |
|         setup.do_fixture_and_runtest(item)
 | |
|         rep = reprec.popcall(pytest_itemtestreport).rep 
 | |
|         assert rep.passed 
 | |
| 
 | |
|     def test_runtest_fails(self, testdir):
 | |
|         item = testdir.getitem("def test_func(): assert 0")
 | |
|         reprec = testdir.getreportrecorder(item.config)
 | |
|         setup = SetupState()
 | |
|         setup.do_fixture_and_runtest(item)
 | |
|         event = reprec.popcall(pytest_item_runtest_finished)
 | |
|         assert event.excinfo 
 | |
|         
 | |
|     
 | |
| 
 |