> During a test rebuild with pytest 3.0.0 from experimental s3ql failed to > build: > | ==================================== ERRORS > ==================================== > | _______________________ ERROR collecting t1_backends.py > ________________________ > | tests/t1_backends.py:152: in pytest_generate_tests > | for x in test_params] ) > | /usr/lib/python3/dist-packages/_pytest/python.py:846: in parametrize > | ids = idmaker(argnames, argvalues, idfn, ids, self.config) > | /usr/lib/python3/dist-packages/_pytest/python.py:933: in idmaker > | for valindex, valset in enumerate(argvalues)] > | /usr/lib/python3/dist-packages/_pytest/python.py:933: in <listcomp> > | for valindex, valset in enumerate(argvalues)] > | /usr/lib/python3/dist-packages/_pytest/python.py:924: in _idvalset > | if ids is None or ids[idx] is None: > | E IndexError: list index out of range > | !!!!!!!!!!!!!!!!!!!! Interrupted: stopping after 1 failures > !!!!!!!!!!!!!!!!!!!! > | =========================== 1 error in 1.29 seconds > ============================ > | debian/rules:51: recipe for target 'override_dh_auto_test' failed > | make[1]: *** [override_dh_auto_test] Error 2 > > Please see > https://people.debian.org/~sramacher/logs/pytest3.0.0/s3ql_amd64.log > for a full log.
This looks like a bug in pytest to me. The "offending" code in t1_backends.py is: def pytest_generate_tests(metafunc, _info_cache=[]): # [ Populate test_params ] metafunc.parametrize("backend", test_params, indirect=True, ids=[ '%s/%s' % (x[0].name, x[1]) for x in test_params] ) I believe this should succeed, no matter the contents of test_params. Best, -Nikolaus -- GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F »Time flies like an arrow, fruit flies like a Banana.«