40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
| 
 | |
| import py
 | |
| from py.__.test.session import itemgen
 | |
| from py.__.test import repevent
 | |
| 
 | |
| class TestItemgen:
 | |
|     def setup_class(cls):
 | |
|         tmp = py.test.ensuretemp('itemgentest')
 | |
|         tmp.ensure("__init__.py")
 | |
|         tmp.ensure("test_one.py").write(py.code.Source("""
 | |
|         def test_one():
 | |
|             pass
 | |
| 
 | |
|         class TestX:
 | |
|             def test_method_one(self):
 | |
|                 pass
 | |
| 
 | |
|         class TestY(TestX):
 | |
|             pass
 | |
|         """))
 | |
|         tmp.ensure("test_two.py").write(py.code.Source("""
 | |
|         import py
 | |
|         py.test.skip('xxx')
 | |
|         """))
 | |
|         tmp.ensure("test_three.py").write("xxxdsadsadsadsa")
 | |
|         cls.tmp = tmp
 | |
|         
 | |
|     def test_itemgen(self):
 | |
|         l = []
 | |
|         colitems = [py.test.collect.Directory(self.tmp)]
 | |
|         gen = itemgen(None, colitems, l.append)
 | |
|         items = [i for i in gen]
 | |
|         assert len([i for i in l if isinstance(i, repevent.SkippedTryiter)]) == 1
 | |
|         assert len([i for i in l if isinstance(i, repevent.FailedTryiter)]) == 1
 | |
|         assert len(items) == 3
 | |
|         assert items[0].name == 'test_one'
 | |
|         assert items[1].name == 'test_method_one'
 | |
|         assert items[2].name == 'test_method_one'
 | |
|         
 |