1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
# -*- 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]
|