> 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.«

Reply via email to