GeezerVison is showing github.com — Skip tests generated by pytest plugins during discovery. (#8242) · sroener/vscode-python@355a325
File treeExpand file treeCollapse file tree Open diff view settings pythonFiles/testing_tools/adapter/pytest
Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboard +2Lines changed: 2 additions & 0 deletions - Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|
| | 1 | +During test discovery, ignore tests generated by pytest plugins (like pep8). | | 2 | +Tests like that were causing discovery to fail. |
Collapse file Copy file name to clipboardExpand all lines: pythonFiles/testing_tools/adapter/pytest/_discovery.py +4-2Lines changed: 4 additions & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -78,7 +78,8 @@ def pytest_collection_modifyitems(self, session, config, items): | 78 | 78 | self._tests.reset() | 79 | 79 | for item in items: | 80 | 80 | test, parents = self.parse_item(item) | 81 | | - self._tests.add_test(test, parents) | | 81 | + if test is not None: | | 82 | + self._tests.add_test(test, parents) | 82 | 83 |
| 83 | 84 | # This hook is not specified in the docs, so we also provide | 84 | 85 | # the "modifyitems" hook just in case. | @@ -92,4 +93,5 @@ def pytest_collection_finish(self, session): | 92 | 93 | self._tests.reset() | 93 | 94 | for item in items: | 94 | 95 | test, parents = self.parse_item(item) | 95 | | - self._tests.add_test(test, parents) | | 96 | + if test is not None: | | 97 | + self._tests.add_test(test, parents) |
Collapse file Copy file name to clipboardExpand all lines: pythonFiles/testing_tools/adapter/pytest/_pytest_item.py +3Lines changed: 3 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -152,6 +152,9 @@ def parse_item(item, #*, | 152 | 152 | """ | 153 | 153 | #_debug_item(item, showsummary=True) | 154 | 154 | kind, _ = _get_item_kind(item) | | 155 | + # Skip plugin generated tests | | 156 | + if kind is None: | | 157 | + return None, None | 155 | 158 | (nodeid, parents, fileid, testfunc, parameterized | 156 | 159 | ) = _parse_node_id(item.nodeid, kind) | 157 | 160 | # Note: testfunc does not necessarily match item.function.__name__. | |
|