about summary refs log tree commit diff
path: root/setup_commands/run_tests.py
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 /setup_commands/run_tests.py
parentd0c7631276223aae6954f7643abac262aa080e50 (diff)
downloadgenenetwork3-00cd52204646f283cfaf413e67755cd9f0acfff0.tar.gz
Provide custom class to run tests
Diffstat (limited to 'setup_commands/run_tests.py')
-rw-r--r--setup_commands/run_tests.py41
1 files changed, 41 insertions, 0 deletions
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])