New issue 509: A namedtuple named Testcase with != 1 parameter in scope breaks
test suite
https://bitbucket.org/hpk42/pytest/issue/509/a-namedtuple-named-testcase-with-1
Øyvind Øvergaard:
I wrote tests for some code which happened to have a namedtuple named Testcase.
importing the Testcase namedtuple into the test's scope breaks the test suite
in pytest, my Testcase namedtuple seems to override some internal thing named
Testcase (see stack trace). Having a class named Testcase in scope, however,
doesn't seem to cause any problems.
```
$ cat test_pytest_testcase_bug.py
# from collections import namedtuple
# Testcase = namedtuple('Testcase', ['foo', 'bar', 'baz', 'quux'])
class Testcase(object):
def __init__(self, foo, bar, baz, quux):
pass
def test_Testcase_in_scope_breaks_pytest():
pass
```
```
$ py.test-2.7 test_pytest_testcase_bug.py
============================ test session starts =============================
platform darwin -- Python 2.7.6 -- py-1.4.20 -- pytest-2.5.2
plugins: cov
collected 1 items / 1 errors
test_pytest_testcase_bug.py .
=================================== ERRORS ===================================
________________ ERROR collecting test_pytest_testcase_bug.py ________________
/usr/local/lib/python2.7/site-packages/_pytest/runner.py:139: in __init__
> self.result = func()
/usr/local/lib/python2.7/site-packages/_pytest/main.py:419: in _memocollect
> return self._memoizedcall('_collected', lambda: list(self.collect()))
/usr/local/lib/python2.7/site-packages/_pytest/main.py:296: in _memoizedcall
> res = function()
/usr/local/lib/python2.7/site-packages/_pytest/main.py:419: in <lambda>
> return self._memoizedcall('_collected', lambda: list(self.collect()))
/usr/local/lib/python2.7/site-packages/_pytest/python.py:526: in collect
> self.session._fixturemanager.parsefactories(self)
/usr/local/lib/python2.7/site-packages/_pytest/python.py:1661: in parsefactories
> holderobj = node_or_obj.obj
/usr/local/lib/python2.7/site-packages/_pytest/python.py:247: in fget
> self._obj = obj = self._getobj()
/usr/local/lib/python2.7/site-packages/_pytest/python.py:522: in _getobj
> obj = self.parent.obj()
E TypeError: __new__() takes exactly 5 arguments (1 given)
===================== 1 passed, 1 error in 0.05 seconds ======================
```
_______________________________________________
pytest-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pytest-commit