Merge pull request #1945 from axil/master

AttributeError chaining bug #1944 fix
This commit is contained in:
Florian Bruhin 2016-09-20 08:36:04 +02:00 committed by GitHub
commit 7660a19d0a
4 changed files with 22 additions and 4 deletions

View File

@ -78,6 +78,7 @@ Kale Kundert
Katarzyna Jachim
Kevin Cox
Lee Kamentsky
Lev Maximov
Lukas Bednar
Maciek Fijalkowski
Maho

View File

@ -12,14 +12,20 @@
* Fix pkg_resources import error in Jython projects (`#1853`).
Thanks `@raquel-ucl`_ for the PR.
* Got rid of ``AttributeError: 'Module' object has no attribute '_obj'`` exception
in Python 3 (`#1944`_).
Thanks `@axil`_ for the PR.
*
.. _@philpep: https://github.com/philpep
.. _@raquel-ucl: https://github.com/raquel-ucl
.. _@axil: https://github.com/axil
.. _#1905: https://github.com/pytest-dev/pytest/issues/1905
.. _#1934: https://github.com/pytest-dev/pytest/issues/1934
.. _#1944: https://github.com/pytest-dev/pytest/issues/1944
3.0.2

View File

@ -205,11 +205,10 @@ class PyobjContext(object):
class PyobjMixin(PyobjContext):
def obj():
def fget(self):
try:
return self._obj
except AttributeError:
obj = getattr(self, '_obj', None)
if obj is None:
self._obj = obj = self._getobj()
return obj
return obj
def fset(self, value):
self._obj = value
return property(fget, fset, None, "underlying python object")

View File

@ -864,3 +864,15 @@ def test_assert_with_unicode(monkeypatch, testdir):
""")
result = testdir.runpytest()
result.stdout.fnmatch_lines(['*AssertionError*'])
def test_issue_1944(testdir):
testdir.makepyfile("""
def f():
return
assert f() == 10
""")
result = testdir.runpytest()
result.stdout.fnmatch_lines(["*1 error*"])
assert "AttributeError: 'Module' object has no attribute '_obj'" not in result.stdout.str()