setuponly: remove printing out/err from capman
This commit is contained in:
		
							parent
							
								
									2e11ea6108
								
							
						
					
					
						commit
						e05b33ed16
					
				
							
								
								
									
										1
									
								
								AUTHORS
								
								
								
								
							
							
						
						
									
										1
									
								
								AUTHORS
								
								
								
								
							|  | @ -267,5 +267,6 @@ Wouter van Ackooy | |||
| Xixi Zhao | ||||
| Xuan Luong | ||||
| Xuecong Liao | ||||
| Yoav Caspi | ||||
| Zac Hatfield-Dodds | ||||
| Zoltán Máté | ||||
|  |  | |||
|  | @ -0,0 +1 @@ | |||
| Fix crash with ``KeyboardInterrupt`` during ``--setup-show``. | ||||
|  | @ -1,5 +1,3 @@ | |||
| import sys | ||||
| 
 | ||||
| import pytest | ||||
| 
 | ||||
| 
 | ||||
|  | @ -51,7 +49,6 @@ def _show_fixture_action(fixturedef, msg): | |||
|     capman = config.pluginmanager.getplugin("capturemanager") | ||||
|     if capman: | ||||
|         capman.suspend_global_capture() | ||||
|         out, err = capman.read_global_capture() | ||||
| 
 | ||||
|     tw = config.get_terminal_writer() | ||||
|     tw.line() | ||||
|  | @ -74,8 +71,6 @@ def _show_fixture_action(fixturedef, msg): | |||
| 
 | ||||
|     if capman: | ||||
|         capman.resume_global_capture() | ||||
|         sys.stdout.write(out) | ||||
|         sys.stderr.write(err) | ||||
| 
 | ||||
| 
 | ||||
| @pytest.hookimpl(tryfirst=True) | ||||
|  |  | |||
|  | @ -267,3 +267,39 @@ def test_show_fixtures_and_execute_test(testdir): | |||
|     result.stdout.fnmatch_lines( | ||||
|         ["*SETUP    F arg*", "*test_arg (fixtures used: arg)F*", "*TEARDOWN F arg*"] | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
| def test_setup_show_with_KeyboardInterrupt_in_test(testdir): | ||||
|     """ Verifies that setups are shown and tests are executed even if there was a KeyboardInterrupt in a test. """ | ||||
|     p = testdir.makepyfile( | ||||
|         """ | ||||
|         import pytest | ||||
|         @pytest.fixture | ||||
|         def arg(): | ||||
|             assert True | ||||
|         def test_arg(arg): | ||||
|             raise KeyboardInterrupt() | ||||
|     """ | ||||
|     ) | ||||
|     result = testdir.runpytest("--setup-show", p, no_reraise_ctrlc=True) | ||||
|     assert result.ret == 2 | ||||
|     result.stdout.fnmatch_lines( | ||||
|         ["*SETUP    F arg*", "*test_arg (fixtures used: arg)*", "*TEARDOWN F arg*"] | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
| def test_setup_show_with_KeyboardInterrupt_in_fixture(testdir): | ||||
|     """ Verifies that setups are shown and tests are executed even if there was a KeyboardInterrupt in a fixture. """ | ||||
|     p = testdir.makepyfile( | ||||
|         """ | ||||
|         import pytest | ||||
|         @pytest.fixture | ||||
|         def arg(): | ||||
|             raise KeyboardInterrupt() | ||||
|         def test_arg(arg): | ||||
|             assert True | ||||
|     """ | ||||
|     ) | ||||
|     result = testdir.runpytest("--setup-show", p, no_reraise_ctrlc=True) | ||||
|     assert result.ret == 2 | ||||
|     result.stdout.fnmatch_lines(["*SETUP    F arg*", "*KeyboardInterrupt*"]) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue