Author: Armin Rigo <ar...@tunes.org> Branch: py3.5 Changeset: r88723:2958f07abe78 Date: 2016-11-29 09:55 +0100 http://bitbucket.org/pypy/pypy/changeset/2958f07abe78/
Log: test and fix a warning diff --git a/pypy/interpreter/generator.py b/pypy/interpreter/generator.py --- a/pypy/interpreter/generator.py +++ b/pypy/interpreter/generator.py @@ -20,7 +20,8 @@ self.running = False self._name = name # may be null, use get_name() self._qualname = qualname # may be null, use get_qualname() - if self.pycode.co_flags & CO_YIELD_INSIDE_TRY: + if (isinstance(self, Coroutine) # XXX would be cool not to need this + or self.pycode.co_flags & CO_YIELD_INSIDE_TRY): self.register_finalizer(self.space) self.saved_operr = None @@ -385,7 +386,7 @@ self.frame.last_instr == -1: space = self.space msg = u"coroutine '%s' was never awaited" % self.get_qualname() - space.warn(space.w_RuntimeWarning, space.wrap(msg)) + space.warn(space.wrap(msg), space.w_RuntimeWarning) GeneratorOrCoroutine._finalize_(self) diff --git a/pypy/interpreter/test/test_coroutine.py b/pypy/interpreter/test/test_coroutine.py --- a/pypy/interpreter/test/test_coroutine.py +++ b/pypy/interpreter/test/test_coroutine.py @@ -160,3 +160,20 @@ else: assert False, "should have raised" """ + + def test_runtime_warning(self): """ + import gc, warnings + async def foobaz(): + pass + with warnings.catch_warnings(record=True) as l: + foobaz() + gc.collect() + gc.collect() + gc.collect() + + assert len(l) == 1, repr(l) + w = l[0].message + assert isinstance(w, RuntimeWarning) + assert str(w).startswith("coroutine ") + assert str(w).endswith("foobaz' was never awaited") + """ _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit