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
pytest-commit@python.org
https://mail.python.org/mailman/listinfo/pytest-commit

Reply via email to