conftest.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # Pytest customization
  2. from __future__ import division, absolute_import, print_function
  3. import os
  4. import pytest
  5. import warnings
  6. from distutils.version import LooseVersion
  7. from scipy._lib._fpumode import get_fpu_mode
  8. from scipy._lib._testutils import FPUModeChangeWarning
  9. def pytest_runtest_setup(item):
  10. if LooseVersion(pytest.__version__) >= LooseVersion("3.6.0"):
  11. mark = item.get_closest_marker("xslow")
  12. else:
  13. mark = item.get_marker("xslow")
  14. if mark is not None:
  15. try:
  16. v = int(os.environ.get('SCIPY_XSLOW', '0'))
  17. except ValueError:
  18. v = False
  19. if not v:
  20. pytest.skip("very slow test; set environment variable SCIPY_XSLOW=1 to run it")
  21. @pytest.fixture(scope="function", autouse=True)
  22. def check_fpu_mode(request):
  23. """
  24. Check FPU mode was not changed during the test.
  25. """
  26. old_mode = get_fpu_mode()
  27. yield
  28. new_mode = get_fpu_mode()
  29. if old_mode != new_mode:
  30. warnings.warn("FPU mode changed from {0:#x} to {1:#x} during "
  31. "the test".format(old_mode, new_mode),
  32. category=FPUModeChangeWarning, stacklevel=0)