This PR converts the entire test harness from nose to pytest.
There are a few steps in the conversion included here:
the initial conversion of assert_foo to plain assertions was done by nose2pytest
replacement of assert_raises with pytest.raises and nose.SkipTest with unittest.SkipTest
collection of yielded tests to allow the pytest runner to later run them
a pytest plugin is used to turn .po files into tests for the blackbox tests
helper scripts that track branch and tag coverage were updated to match
switch CI over to use pytest rather than nose
(and a fixup commit that sorts out some pylint grumblings)
(and fixup commits to deal with particularly old versions of Python)
The decorator for the yield tests is probably only an interim solution with the yield tests becoming more normal parameterised tests in time. The yield tests that are currently just long lists of yield statements are easy enough to convert but the ones that programmatically generate either the test function or the input require much more work.
This PR converts the entire test harness from nose to pytest.
There are a few steps in the conversion included here:
assert_raises
withpytest.raises
andnose.SkipTest
withunittest.SkipTest
The decorator for the yield tests is probably only an interim solution with the yield tests becoming more normal parameterised tests in time. The yield tests that are currently just long lists of
yield
statements are easy enough to convert but the ones that programmatically generate either the test function or the input require much more work.Closes: #7