Page MenuHomePhabricator

py.test on PyPy error on some test metaclasses
Closed, DeclinedPublic

Description

py.test is erroring on the metaclasses (other than the main metaclass) , apparently during collection so not easily bypasses by deactivating the test module.

This is especially annoying as py.test is passing the pwb tests where unittest alone and nose fail.

A local workaround will be necessary if an upstream fix isnt easy.

_____________________ ERROR collecting tests/date_tests.py _____________________
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)
_____________________ ERROR collecting tests/l10n_tests.py _____________________
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)
___________________ ERROR collecting tests/logentry_tests.py ___________________
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)
____________________ ERROR collecting tests/script_tests.py ____________________
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-5.1.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)

Also 4.0.1

==================================== ERRORS ====================================
_____________________ ERROR collecting tests/date_tests.py _____________________
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)
_____________________ ERROR collecting tests/l10n_tests.py _____________________
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)
___________________ ERROR collecting tests/logentry_tests.py ___________________
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)
____________________ ERROR collecting tests/script_tests.py ____________________
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-4.0.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)

2.6.1

_____________________ ERROR collecting tests/date_tests.py _____________________
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)
_____________________ ERROR collecting tests/l10n_tests.py _____________________
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)
___________________ ERROR collecting tests/logentry_tests.py ___________________
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)
____________________ ERROR collecting tests/script_tests.py ____________________
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/runner.py:150: in __init__
    self.result = func()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:435: in _memocollect
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:315: in _memoizedcall
    res = function()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/main.py:435: in <lambda>
    return self._memoizedcall('_collected', lambda: list(self.collect()))
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:685: in collect
    self.session._fixturemanager.parsefactories(self)
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:1969: in parsefactories
    holderobj = node_or_obj.obj
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:351: in fget
    self._obj = obj = self._getobj()
../../../virtualenvs/pypy-2.6.1/site-packages/_pytest/python.py:681: in _getobj
    obj = self.parent.obj()
E   TypeError: __new__() takes exactly 4 arguments (1 given)

Related Objects

StatusSubtypeAssignedTask
ResolvedXqt
DeclinedNone

Event Timeline

The solution was to prefix the metaclass with _. :/

Xqt subscribed.

This is very outdated and cannot be reproduced