terminal: use pytest_collection_finish for reporting
This commit is contained in:
		
							parent
							
								
									19035f4b55
								
							
						
					
					
						commit
						ff5317a7f3
					
				|  | @ -0,0 +1 @@ | ||||||
|  | Deselected items from plugins using ``pytest_collect_modifyitems`` as a hookwrapper are correctly reported now. | ||||||
|  | @ -553,10 +553,6 @@ class TerminalReporter(object): | ||||||
|         else: |         else: | ||||||
|             self.write_line(line) |             self.write_line(line) | ||||||
| 
 | 
 | ||||||
|     @pytest.hookimpl(trylast=True) |  | ||||||
|     def pytest_collection_modifyitems(self): |  | ||||||
|         self.report_collect(True) |  | ||||||
| 
 |  | ||||||
|     @pytest.hookimpl(trylast=True) |     @pytest.hookimpl(trylast=True) | ||||||
|     def pytest_sessionstart(self, session): |     def pytest_sessionstart(self, session): | ||||||
|         self._session = session |         self._session = session | ||||||
|  | @ -609,6 +605,8 @@ class TerminalReporter(object): | ||||||
|         return result |         return result | ||||||
| 
 | 
 | ||||||
|     def pytest_collection_finish(self, session): |     def pytest_collection_finish(self, session): | ||||||
|  |         self.report_collect(True) | ||||||
|  | 
 | ||||||
|         if self.config.getoption("collectonly"): |         if self.config.getoption("collectonly"): | ||||||
|             self._printcollecteditems(session.items) |             self._printcollecteditems(session.items) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -506,6 +506,37 @@ class TestTerminalFunctional(object): | ||||||
|         ) |         ) | ||||||
|         assert result.ret == 0 |         assert result.ret == 0 | ||||||
| 
 | 
 | ||||||
|  |     def test_deselected_with_hookwrapper(self, testdir): | ||||||
|  |         testpath = testdir.makeconftest( | ||||||
|  |             """ | ||||||
|  |             import pytest | ||||||
|  | 
 | ||||||
|  |             @pytest.hookimpl(hookwrapper=True) | ||||||
|  |             def pytest_collection_modifyitems(config, items): | ||||||
|  |                 yield | ||||||
|  |                 deselected = items.pop() | ||||||
|  |                 config.hook.pytest_deselected(items=[deselected]) | ||||||
|  |             """ | ||||||
|  |         ) | ||||||
|  |         testpath = testdir.makepyfile( | ||||||
|  |             """ | ||||||
|  |                 def test_one(): | ||||||
|  |                     pass | ||||||
|  |                 def test_two(): | ||||||
|  |                     pass | ||||||
|  |                 def test_three(): | ||||||
|  |                     pass | ||||||
|  |            """ | ||||||
|  |         ) | ||||||
|  |         result = testdir.runpytest(testpath) | ||||||
|  |         result.stdout.fnmatch_lines( | ||||||
|  |             [ | ||||||
|  |                 "collected 3 items / 1 deselected / 2 selected", | ||||||
|  |                 "*= 2 passed, 1 deselected in*", | ||||||
|  |             ] | ||||||
|  |         ) | ||||||
|  |         assert result.ret == 0 | ||||||
|  | 
 | ||||||
|     def test_show_deselected_items_using_markexpr_before_test_execution(self, testdir): |     def test_show_deselected_items_using_markexpr_before_test_execution(self, testdir): | ||||||
|         testdir.makepyfile( |         testdir.makepyfile( | ||||||
|             test_show_deselected=""" |             test_show_deselected=""" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue