combi icon indicating copy to clipboard operation
combi copied to clipboard

Four tests fail with python >= 3.8

Open mcepl opened this issue 3 years ago • 9 comments

When packaging this package (version 1.1.2 from the PyPI tarball) for openSUSE (and trying to remove dependency on nose from it, BTW, if you can rewrite that test_extensive construct into normal pytest/parametrized test, then I have a bottle of drink of your own choice to send you!), anyway when running the test suite with Python >= 3.8 I got these four tests to error (not even fail):

[   31s] + export PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.6/site-packages
[   31s] + PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.6/site-packages
[   31s] + python3.6 /home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.6/site-packages/test_combi/scripts/_test_combi.py
[  120s] ..................................
[  120s] ----------------------------------------------------------------------
[  120s] Ran 34 tests in 87.666s
[  120s]
[  120s] OK
[  121s] ++ '[' -f _current_flavor ']'
[  121s] ++ cat _current_flavor
[  121s] + last_flavor=python36
[  121s] + '[' -z python36 ']'
[  121s] + '[' python36 '!=' python39 ']'
[  121s] + '[' -d build ']'
[  121s] + '[' -d _build.python39 ']'
[  121s] + echo python39
[  121s] + python_flavor=python39
[  121s] + export PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages
[  121s] + PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages
[  121s] + python3.9 /home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/test_combi/scripts/_test_combi.py
[  180s] ......E...E..EE...................
[  180s] ======================================================================
[  180s] ERROR: test_combi.test_extensive.test_1
[  180s] ----------------------------------------------------------------------
[  180s] Traceback (most recent call last):
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 686, in <genexpr>
[  180s]     next(free_values_perm_iterator))
[  180s] StopIteration
[  180s]
[  180s] The above exception was the direct cause of the following exception:
[  180s]
[  180s] Traceback (most recent call last):
[  180s]   File "/usr/lib/python3.9/site-packages/nose/case.py", line 197, in runTest
[  180s]     self.test(*self.arg)
[  180s]   File "<string>", line 1, in test_1
[  180s]   File "<string>", line 1, in <lambda>
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/test_combi/test_extensive.py", line 223, in _check_variation_selection
[  180s]     assert perm_space.index(perm_space[-1]) == perm_space.length - 1
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 683, in __getitem__
[  180s]     tuple(
[  180s] RuntimeError: generator raised StopIteration
[  180s]
[  180s] ======================================================================
[  180s] ERROR: test_combi.test_extensive.test_2
[  180s] ----------------------------------------------------------------------
[  180s] Traceback (most recent call last):
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 686, in <genexpr>
[  180s]     next(free_values_perm_iterator))
[  180s] StopIteration
[  180s]
[  180s] The above exception was the direct cause of the following exception:
[  180s]
[  180s] Traceback (most recent call last):
[  180s]   File "/usr/lib/python3.9/site-packages/nose/case.py", line 197, in runTest
[  180s]     self.test(*self.arg)
[  180s]   File "<string>", line 1, in test_2
[  180s]   File "<string>", line 1, in <lambda>
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/test_combi/test_extensive.py", line 223, in _check_variation_selection
[  180s]     assert perm_space.index(perm_space[-1]) == perm_space.length - 1
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 556, in __getitem__
[  180s]     return self.perm_type(self.undapplied[i], perm_space=self)
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 683, in __getitem__
[  180s]     tuple(
[  180s] RuntimeError: generator raised StopIteration
[  180s]
[  180s] ======================================================================
[  180s] ERROR: test_combi.test_extensive.test_5
[  180s] ----------------------------------------------------------------------
[  180s] Traceback (most recent call last):
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 686, in <genexpr>
[  180s]     next(free_values_perm_iterator))
[  180s] StopIteration
[  180s]
[  180s] The above exception was the direct cause of the following exception:
[  180s]
[  180s] Traceback (most recent call last):
[  180s]   File "/usr/lib/python3.9/site-packages/nose/case.py", line 197, in runTest
[  180s]     self.test(*self.arg)
[  180s]   File "<string>", line 1, in test_5
[  180s]   File "<string>", line 1, in <lambda>
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/test_combi/test_extensive.py", line 223, in _check_variation_selection
[  180s]     assert perm_space.index(perm_space[-1]) == perm_space.length - 1
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 683, in __getitem__
[  180s]     tuple(
[  180s] RuntimeError: generator raised StopIteration
[  180s]
[  180s] ======================================================================
[  180s] ERROR: test_combi.test_extensive.test_6
[  180s] ----------------------------------------------------------------------
[  180s] Traceback (most recent call last):
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 686, in <genexpr>
[  180s]     next(free_values_perm_iterator))
[  180s] StopIteration
[  180s]
[  180s] The above exception was the direct cause of the following exception:
[  180s]
[  180s] Traceback (most recent call last):
[  180s]   File "/usr/lib/python3.9/site-packages/nose/case.py", line 197, in runTest
[  180s]     self.test(*self.arg)
[  180s]   File "<string>", line 1, in test_6
[  180s]   File "<string>", line 1, in <lambda>
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/test_combi/test_extensive.py", line 223, in _check_variation_selection
[  180s]     assert perm_space.index(perm_space[-1]) == perm_space.length - 1
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 554, in __getitem__
[  180s]     return self.unsliced[i + self.canonical_slice.start]
[  180s]   File "/home/abuild/rpmbuild/BUILDROOT/python-combi-1.1.2-0.x86_64/usr/lib/python3.9/site-packages/combi/perming/perm_space.py", line 683, in __getitem__
[  180s]     tuple(
[  180s] RuntimeError: generator raised StopIteration
[  180s]
[  180s] ----------------------------------------------------------------------
[  180s] Ran 34 tests in 57.982s
[  180s]
[  180s] FAILED (errors=4)

This is the complete build log with all versions of packages used and steps taken.

mcepl avatar Sep 16 '21 13:09 mcepl

I'll check it out, thanks for reporting. Out of curiosity, what are you using Combi for? It never really got popular like I hoped it would get.

cool-RR avatar Sep 16 '21 13:09 cool-RR

Can you try removing Combi, installing python_toolbox and running the tests on it? It includes Combi, you can just from python_toolbox import combi

cool-RR avatar Sep 16 '21 14:09 cool-RR

Also, with python_toolbox you can run the tests using Pytest instead of nose.

cool-RR avatar Sep 16 '21 14:09 cool-RR

Out of curiosity, what are you using Combi for? It never really got popular like I hoped it would get.

It is part of openSUSE Linux distribution, https://build.opensuse.org/package/show/openSUSE:Factory/python-combi

Can you try removing Combi, installing python_toolbox and running the tests on it?

I would rather not. Is Combi project still alive or did you kill in favour of python_toolbox? Also, distributions (Linux or otherwise) usually quite prefer to use individual components, the sentence “The Python Toolbox contains 100+ useful little tools.” sounds like a disaster to me.

mcepl avatar Sep 16 '21 16:09 mcepl

Interesting, I didn't know it's in openSUSE. I wonder who has been using it, because in all these years, I spoke to maybe 1-2 people who used it. This issue is number 5 in the repo.

Unfortunately I killed it today: https://github.com/cool-RR/combi/commit/0142389599a394298299bed7e95c689b3790a457

the sentence “The Python Toolbox contains 100+ useful little tools.” sounds like a disaster to me.

I agree, it's a big problem and probably not fit to be shipped with a Linux distro. It's just not in my priorities to maintain combi and fix bugs. It's probably best if it gets removed.

cool-RR avatar Sep 16 '21 16:09 cool-RR

OK, so just because I did the work:

We will probably eventually remove the package from openSUSE.

mcepl avatar Sep 16 '21 17:09 mcepl

Thanks, pushed to master. Do you also need a release?

cool-RR avatar Sep 18 '21 07:09 cool-RR

I don't need to (we can happily live with those patches in our package), but it would be nice for others.

mcepl avatar Sep 18 '21 08:09 mcepl

Released version 1.1.4 with your fixes. Thanks for your report.

cool-RR avatar Sep 18 '21 08:09 cool-RR