From e1c5314d80ad7b90257bfaf7a807a3d2e10f4494 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Wed, 1 Feb 2017 02:37:55 -0200 Subject: [PATCH] Replace 'raise StopIteration' usages in the code by 'return's in accordance to PEP-479 Fix #2160 --- CHANGELOG.rst | 11 +++++++++-- _pytest/python.py | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 006c0ed0f..612ee0f3b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,10 @@ 3.0.7 (unreleased) -======================= +================== + +* + +* Replace ``raise StopIteration`` usages in the code by simple ``returns`` to finish generators, in accordance to `PEP-479`_ (`#2160`_). + Thanks `@tgoodlet`_ for the report and `@nicoddemus`_ for the PR. * @@ -7,7 +12,9 @@ * -* +.. _#2160: https://github.com/pytest-dev/pytest/issues/2160 + +.. _PEP-479: https://www.python.org/dev/peps/pep-0479/ 3.0.6 (2017-01-22) diff --git a/_pytest/python.py b/_pytest/python.py index e46f2f1bc..2973d43d6 100644 --- a/_pytest/python.py +++ b/_pytest/python.py @@ -174,7 +174,7 @@ def pytest_pycollect_makeitem(collector, name, obj): outcome = yield res = outcome.get_result() if res is not None: - raise StopIteration + return # nothing was collected elsewhere, let's do it here if isclass(obj): if collector.istestclass(obj, name):