ref: 98972b9ac8ac077ef54f081e0bb60d5803b2c970
parent: 0ed0405c5bd95595da2ebd62cc9847c177f58aea
author: Paul Brossier <piem@piem.org>
date: Thu Nov 1 18:27:02 EDT 2018
[tests] add checks.py, selects testing module
--- /dev/null
+++ b/python/tests/checks.py
@@ -1,0 +1,50 @@
+"""
+This file imports test methods from different testing modules, in this
+order:
+
+ - if 'nose2' is found in the list of loaded module, use it
+ - otherwise, try using 'pytest'
+ - if that also fails, fallback to 'numpy.testing'
+"""
+
+import sys
+
+_has_pytest = False
+_has_nose2 = False
+
+# if nose2 has already been imported, use it
+if 'nose2' in sys.modules:
+ from nose2.tools import params, such
+ def parametrize(argnames, argvalues):
+ return params(*argvalues)
+ assert_raises = such.helper.assertRaises
+ assert_warns = such.helper.assertWarns
+ skipTest = such.helper.skipTest
+ _has_nose2 = True
+ print ('using nose2')
+
+# otherwise, check if we have pytest
+if not _has_nose2:
+ try:
+ import pytest
+ parametrize = pytest.mark.parametrize
+ _has_pytest = True
+ assert_raises = pytest.raises
+ assert_warns = pytest.warns
+ skipTest = pytest.skip
+ print ('using pytest')
+ except:
+ pass
+
+# otherwise fallback on numpy.testing
+if not _has_pytest and not _has_nose2:
+ from numpy.testing import dec, assert_raises, assert_warns
+ from numpy.testing import SkipTest
+ parametrize = dec.parametrize
+ def skipTest(msg):
+ raise SkipTest(msg)
+ print ('using numpy')
+
+# always use numpy's assert_equal
+import numpy
+assert_equal = numpy.testing.assert_equal