nvictus/pqdict

Massive test failures when used from Python 3.8

rocky opened this issue · 2 comments

rocky commented

I am getting these failures when used from Python 3.8.3:

$ nosetests test
EE......E.FE.E.EE.E.EEEEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEEEEEEEEEEEEEE.....SSSSSSSSSSSSSSSS.....................................S..............  C-c C-cS
======================================================================
ERROR: test.support.testresult.get_test_runner_class
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/rocky/.pyenv/versions/3.8.3/lib/python3.8/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
TypeError: get_test_runner_class() missing 1 required positional argument: 'verbosity'

======================================================================
ERROR: test.support.testresult.get_test_runner
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/rocky/.pyenv/versions/3.8.3/lib/python3.8/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
TypeError: get_test_runner() missing 2 required positional arguments: 'stream' and 'verbosity'

======================================================================
ERROR: test.audit-tests.test_open
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/rocky/.pyenv/versions/3.8.3/lib/python3.8/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/home/rocky/.pyenv/versions/3.8.3/lib/python3.8/test/audit-tests.py", line 201, in test_open
    (open, sys.argv[2], "r"),
IndexError: list index out of range
-------------------- >> begin captured stdout << ---------------------
sys.addaudithook 139704741433248
... [hundreds of other lines]

I note however that when i use this package from 3.8.3 things work fine.

If you'd like me to investigate and suggest a fix/PR, let me know.

Please, go for it!

I suspect it's a nose issue, since it isn't maintained anymore.
We can try updating to nose2 or pytest. I've never used nose2 but it might be a drop in replacement. Switching to pytest would require rewriting the test generator because pytest doesn't support that feature.

I take back what I said. I thought we had been using a nose feature called test generators, but I just double checked and it looks like that's not the case. I think a switch to pytest should work just fine.