aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2022-02-12 07:33:42 +0300
committerFrederick Muriuki Muriithi2022-02-12 07:33:42 +0300
commit00cd52204646f283cfaf413e67755cd9f0acfff0 (patch)
tree9d9459b70f23b4042ea609a0ca35638af8afad84
parentd0c7631276223aae6954f7643abac262aa080e50 (diff)
downloadgenenetwork3-00cd52204646f283cfaf413e67755cd9f0acfff0.tar.gz
Provide custom class to run tests
-rw-r--r--setup.cfg7
-rw-r--r--setup.py16
-rw-r--r--setup_commands/__init__.py3
-rw-r--r--setup_commands/run_tests.py41
4 files changed, 57 insertions, 10 deletions
diff --git a/setup.cfg b/setup.cfg
index b7593ce..41d118e 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,4 @@
[aliases]
-check = pytest
-unit_check = check --addopts=tests/unit
-integration_check = check --addopts=tests/integration
-performance_check = check --addopts=tests/performance
+run_unit_tests = run_tests --type=unit
+run_integration_tests = run_tests --type=integration
+run_performance_tests = run_tests --type=performance
diff --git a/setup.py b/setup.py
index a4e95d1..9396f59 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,12 @@
#!/usr/bin/env python
"""Basic setup script for gn3"""
from setuptools import setup # type: ignore
+from setup_commands import RunTests
+def long_description():
+ """Retrieve long description from the README file."""
+ with open('README.md', encoding="utf-8") as readme:
+ return readme.read()
setup(author='Bonface M. K.',
author_email='me@bonfacemunyoki.com',
@@ -23,7 +28,7 @@ setup(author='Bonface M. K.',
"flask-cors==3.0.9"
],
license='GPLV3',
- long_description=open('README.md').read(),
+ long_description=long_description(),
long_description_content_type='text/markdown',
name='gn3',
packages=[
@@ -35,8 +40,7 @@ setup(author='Bonface M. K.',
],
url='https://github.com/genenetwork/genenetwork3',
version='0.1',
- # ---- TESTING ---- #
- setup_requires=['pytest-runner'],
- tests_require=["pytest", "hypothesis"]
- # ---- END: TESTING ---- #
- )
+ tests_require=["pytest", "hypothesis"],
+ cmdclass={
+ "run_tests": RunTests ## testing
+ })
diff --git a/setup_commands/__init__.py b/setup_commands/__init__.py
new file mode 100644
index 0000000..967bb11
--- /dev/null
+++ b/setup_commands/__init__.py
@@ -0,0 +1,3 @@
+"""Module for custom setup commands."""
+
+from .run_tests import RunTests
diff --git a/setup_commands/run_tests.py b/setup_commands/run_tests.py
new file mode 100644
index 0000000..9a2c9ad
--- /dev/null
+++ b/setup_commands/run_tests.py
@@ -0,0 +1,41 @@
+import os
+import sys
+from distutils.core import Command
+
+class RunTests(Command):
+ """
+ A custom command to run tests.
+ """
+ description = "Run the tests"
+ commands = {
+ "all": "pytest",
+ "unit": "pytest tests/unit",
+ "integration": "pytest tests/integration",
+ "performance": "pytest tests/performance",
+ }
+ user_options = [
+ ("type=", None,
+ f"""Specify the type of tests to run.
+ Valid types are {tuple(commands.keys())}.
+ Default is `all`.""")]
+
+ def __init__(self, dist):
+ """Initialise the command."""
+ super().__init__(dist)
+
+ def initialize_options(self):
+ """Initialise the default values of all the options."""
+ self.type = "all"
+
+ def finalize_options(self):
+ """Set final value of all the options once they are processed."""
+ if self.type not in RunTests.commands.keys():
+ raise Exception(f"""
+ Invalid test type (self.type) requested!
+ Valid types are
+ {tuple(RunTests.commands.keys())}""")
+
+ def run(self):
+ """Run the chosen tests"""
+ print(f"Running {self.type} tests")
+ os.system(RunTests.commands[self.type])