Fold skipped tests with global pytestmark variable
This commit is contained in:
		
							parent
							
								
									9e62a31b63
								
							
						
					
					
						commit
						98bf5fc9be
					
				
							
								
								
									
										1
									
								
								AUTHORS
								
								
								
								
							
							
						
						
									
										1
									
								
								AUTHORS
								
								
								
								
							|  | @ -117,6 +117,7 @@ Matt Bachmann | ||||||
| Matt Duck | Matt Duck | ||||||
| Matt Williams | Matt Williams | ||||||
| Matthias Hafner | Matthias Hafner | ||||||
|  | Maxim Filipenko | ||||||
| mbyt | mbyt | ||||||
| Michael Aquilina | Michael Aquilina | ||||||
| Michael Birtwell | Michael Birtwell | ||||||
|  |  | ||||||
|  | @ -345,6 +345,12 @@ def folded_skips(skipped): | ||||||
|     for event in skipped: |     for event in skipped: | ||||||
|         key = event.longrepr |         key = event.longrepr | ||||||
|         assert len(key) == 3, (event, key) |         assert len(key) == 3, (event, key) | ||||||
|  |         keywords = getattr(event, 'keywords', {}) | ||||||
|  |         # folding reports with global pytestmark variable | ||||||
|  |         # this is workaround, because for now we cannot identify the scope of a skip marker | ||||||
|  |         # TODO: revisit after marks scope would be fixed | ||||||
|  |         if event.when == 'setup' and 'skip' in keywords and 'pytestmark' not in keywords: | ||||||
|  |             key = (key[0], None, key[2], ) | ||||||
|         d.setdefault(key, []).append(event) |         d.setdefault(key, []).append(event) | ||||||
|     l = [] |     l = [] | ||||||
|     for key, events in d.items(): |     for key, events in d.items(): | ||||||
|  | @ -367,6 +373,11 @@ def show_skipped(terminalreporter, lines): | ||||||
|             for num, fspath, lineno, reason in fskips: |             for num, fspath, lineno, reason in fskips: | ||||||
|                 if reason.startswith("Skipped: "): |                 if reason.startswith("Skipped: "): | ||||||
|                     reason = reason[9:] |                     reason = reason[9:] | ||||||
|                 lines.append( |                 if lineno is not None: | ||||||
|                     "SKIP [%d] %s:%d: %s" % |                     lines.append( | ||||||
|                     (num, fspath, lineno + 1, reason)) |                         "SKIP [%d] %s:%d: %s" % | ||||||
|  |                         (num, fspath, lineno + 1, reason)) | ||||||
|  |                 else: | ||||||
|  |                     lines.append( | ||||||
|  |                         "SKIP [%d] %s: %s" % | ||||||
|  |                         (num, fspath, reason)) | ||||||
|  |  | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Report only once tests with global ``pytestmark`` variable. | ||||||
|  | @ -676,6 +676,7 @@ def test_skip_reasons_folding(): | ||||||
|     ev1.longrepr = longrepr |     ev1.longrepr = longrepr | ||||||
| 
 | 
 | ||||||
|     ev2 = X() |     ev2 = X() | ||||||
|  |     ev2.when = "execute" | ||||||
|     ev2.longrepr = longrepr |     ev2.longrepr = longrepr | ||||||
|     ev2.skipped = True |     ev2.skipped = True | ||||||
| 
 | 
 | ||||||
|  | @ -713,6 +714,27 @@ def test_skipped_reasons_functional(testdir): | ||||||
|     assert result.ret == 0 |     assert result.ret == 0 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def test_skipped_folding(testdir): | ||||||
|  |     testdir.makepyfile( | ||||||
|  |         test_one=""" | ||||||
|  |             import pytest | ||||||
|  |             pytestmark = pytest.mark.skip("Folding") | ||||||
|  |             def setup_function(func): | ||||||
|  |                 pass | ||||||
|  |             def test_func(): | ||||||
|  |                 pass | ||||||
|  |             class TestClass(object): | ||||||
|  |                 def test_method(self): | ||||||
|  |                     pass | ||||||
|  |        """, | ||||||
|  |     ) | ||||||
|  |     result = testdir.runpytest('-rs') | ||||||
|  |     result.stdout.fnmatch_lines([ | ||||||
|  |         "*SKIP*2*test_one.py: Folding" | ||||||
|  |     ]) | ||||||
|  |     assert result.ret == 0 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def test_reportchars(testdir): | def test_reportchars(testdir): | ||||||
|     testdir.makepyfile(""" |     testdir.makepyfile(""" | ||||||
|         import pytest |         import pytest | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue