[Pytest-commit] Issue #514: Error constructing message for unhooked assertion failure based on private variable (hpk42/pytest)
Jurko Gospodnetić
issues-reply at bitbucket.org
Tue May 13 08:56:33 CEST 2014
New issue 514: Error constructing message for unhooked assertion failure based on private variable
https://bitbucket.org/hpk42/pytest/issue/514/error-constructing-message-for-unhooked
Jurko Gospodnetić:
In the following scenario:
File: ```test_me.py```
```
#!python
from outsider import Outsider
class Insider:
def __init__(self):
self.__private = 5
assert self.__private == 6
def test_insider():
Insider()
def test_outsider():
Outsider()
```
File: ``outsider.py``
```
#!python
class Outsider:
def __init__(self):
self.__private = 5
assert self.__private == 6
```
when running the tests using ``pytest --tb=short`` you get the following output:
```
#!text
================================== FAILURES ===================================
________________________________ test_insider _________________________________
test_me.py:9: in test_insider
> Insider()
test_me.py:6: in __init__
> assert self.__private == 6
E assert 5 == 6
E + where 5 = <test_me.Insider object at 0x00000000034460B8>.__private
________________________________ test_outsider ________________________________
test_me.py:12: in test_outsider
> Outsider()
outsider.py:4: in __init__
> assert self.__private == 6
E AssertionError: AttributeError: <outsider.Outsider object at 0x0000000003446AC8>.__private << 'Outsider' object has no attribute '__private'
========================== 2 failed in 0.08 seconds ===========================
```
As you can see, ``pytest`` attempts to construct the assertion failure description message for the failed ``test_outsider`` test but does not access the private ``__private`` attribute correctly which should have been accessed as ``_Outsider__private``.
Hope this helps.
Best regards,
Jurko Gospodnetić
More information about the pytest-commit
mailing list