Spaces:
Running
on
Zero
Running
on
Zero
# -*- coding: utf-8 -*- | |
# Distributed under the (new) BSD License. See LICENSE.txt for more info. | |
""" Functionality used for testing. This code itself is not covered in tests. | |
""" | |
import os | |
import sys | |
import pytest | |
# Get root dir | |
THIS_DIR = os.path.abspath(os.path.dirname(__file__)) | |
ROOT_DIR = THIS_DIR | |
for i in range(9): | |
ROOT_DIR = os.path.dirname(ROOT_DIR) | |
if os.path.isfile(os.path.join(ROOT_DIR, ".gitignore")): | |
break | |
# Functions to use from invoke tasks | |
def test_unit(cov_report="term"): | |
"""Run all unit tests. Returns exit code.""" | |
orig_dir = os.getcwd() | |
os.chdir(ROOT_DIR) | |
try: | |
_clear_imageio() | |
_enable_faulthandler() | |
return pytest.main( | |
[ | |
"-v", | |
"--cov", | |
"imageio", | |
"--cov-config", | |
".coveragerc", | |
"--cov-report", | |
cov_report, | |
"tests", | |
] | |
) | |
finally: | |
os.chdir(orig_dir) | |
import imageio | |
print("Tests were performed on", str(imageio)) | |
# Requirements | |
def _enable_faulthandler(): | |
"""Enable faulthandler (if we can), so that we get tracebacks | |
on segfaults. | |
""" | |
try: | |
import faulthandler | |
faulthandler.enable() | |
print("Faulthandler enabled") | |
except Exception: | |
print("Could not enable faulthandler") | |
def _clear_imageio(): | |
# Remove ourselves from sys.modules to force an import | |
for key in list(sys.modules.keys()): | |
if key.startswith("imageio"): | |
del sys.modules[key] | |