rename SubTest to ConditionalTest

This commit is contained in:
Daniel 2023-12-02 18:28:25 +01:00
parent 08da8787c8
commit 6ff5b639a6
5 changed files with 21 additions and 19 deletions

View file

@ -8,7 +8,7 @@ from loguru import logger
from src.dirmanager import DirManager
class SubTest(TypedDict):
class ConditionalTest(TypedDict):
condition: Callable[[dict[str, str]], bool]
test_file: str
@ -20,7 +20,7 @@ class Runner:
main_test_name: Optional[str] = None
main_cleanup_name: Optional[str] = None
dependencies: list[type["Runner"]] = []
sub_tests: list[SubTest] = []
conditional_tests: list[ConditionalTest] = []
prevent_skip = False
def __init__(self, dotenv_path: Path, output_dir: Path, session_id: str):
@ -69,12 +69,12 @@ class Runner:
)
# run sub tests if conditions are met
for sub_test in self.sub_tests:
condition_function = sub_test["condition"]
sub_test_name = sub_test["test_file"]
identifier_string = self.combine_names(self.name, sub_test_name)
for cond_test in self.conditional_tests:
condition_function = cond_test["condition"]
cond_test_name = cond_test["test_file"]
identifier_string = self.combine_names(self.name, cond_test_name)
if condition_function(self.config):
test_path = self.root_dir / self.test_dir_name / sub_test_name
test_path = self.root_dir / self.test_dir_name / cond_test_name
self._run_or_skip_test(identifier_string=identifier_string, test_path=test_path)
else:
self._create_result_file(result=-1, identifier_string=identifier_string)
@ -100,12 +100,12 @@ class Runner:
self._create_result_file(result=result, identifier_string=identifier_string)
def _is_test_passed(self, identifier_string: str, remove_existing: bool = False) -> bool:
"""returns True if the selected test (matching test_name + sub_test_name) already passed
"""returns True if the selected test matching identifier_string already passed
This is determined by the presence of a specific output file in the RESULTS folder that
matches identifier_string
remove_existing: If True, result files matching test_name + sub_test_name with a status
remove_existing: If True, result files matching identifier_string with a status
other than 'passed' will be deleted"""
already_passed = False

View file

@ -1,4 +1,4 @@
from src.runner import Runner, SubTest
from src.runner import Runner
def condition_always_true(dotenv_config: dict[str, str]) -> bool:

View file

@ -1,6 +1,6 @@
from typing import Optional
from src.runner import Runner, SubTest
from src.runner import ConditionalTest, Runner
from src.tests_authentik.runner_authentik import RunnerAuthentik
@ -24,6 +24,6 @@ class RunnerDemo(Runner):
dependencies: list[type["Runner"]] = [RunnerAuthentik]
# this list can hold many more tests from RunnerDemo that run conditional. The condition
# and the test file can be defined by creating a SubTest instance:
# SubTest(condition: Callable, test_file: str)
sub_tests: list[SubTest] = []
# and the test file can be defined by creating a ConditionalTest instance:
# ConditionalTest(condition: Callable, test_file: str)
conditional_tests: list[ConditionalTest] = []

View file

@ -1,4 +1,4 @@
from src.runner import Runner, SubTest
from src.runner import ConditionalTest, Runner
from src.tests_authentik.runner_authentik import RunnerAuthentik
@ -13,4 +13,6 @@ class RunnerNextcloud(Runner):
main_test_name = "tests_nextcloud.py"
# main_cleanup_name = "cleanup_nextcloud.py"
dependencies = [RunnerAuthentik]
sub_tests: list[SubTest] = [SubTest(condition=fake_condition, test_file="tests_nextcloud_onlyoffice.py")]
conditional_tests: list[ConditionalTest] = [
ConditionalTest(condition=fake_condition, test_file="tests_nextcloud_onlyoffice.py")
]

View file

@ -1,4 +1,4 @@
from src.runner import Runner, SubTest
from src.runner import ConditionalTest, Runner
from src.tests_authentik.runner_authentik import RunnerAuthentik
@ -23,7 +23,7 @@ class RunnerWordpress(Runner):
main_setup_name = "setup_wordpress.py"
main_test_name = "test_wordpress.py"
dependencies: list[type[Runner]] = [RunnerAuthentik]
sub_tests = [
# SubTest(condition=condition_has_locale, test_file="test_wordpress_localization.py"),
conditional_tests = [
# ConditionalTest(condition=condition_has_locale, test_file="test_wordpress_localization.py"),
]
prevent_skip = True