refactor for independent test dirs (#7)
* make it so that the actual tests can be moved anywhere, for example in abra recipe repos -> major refactoring with pytest test discovery magic * create RUNNER_DICT dynamically with importlib -> none of the tests are hardcoded, more tests can be added by placing a folder * autoload fixtures with pytest plugins * add URL fixture to navigate on web pages. Includes url parser based on python urllib to generate correct links * fix nextcloud setups and tests * add email groundwork with imbox Reviewed-on: local-it-infrastructure/e2e_tests#7 Co-authored-by: Daniel <d.brummerloh@gmail.com> Co-committed-by: Daniel <d.brummerloh@gmail.com>
This commit is contained in:
parent
3fa10aaa69
commit
f9c21c6e6b
45 changed files with 373 additions and 228 deletions
|
|
@ -2,8 +2,11 @@ from pathlib import Path
|
|||
|
||||
import pytest
|
||||
|
||||
# from src.env_file_helper import DependencyRule, EnvFile, sort_env_files_by_rule
|
||||
from src.env_manager import DependencyRule, EnvFile, EnvManager
|
||||
from abratest.coordinator import Coordinator
|
||||
from abratest.env_manager import DependencyRule, EnvFile, EnvManager
|
||||
|
||||
RECIPES_DIR = Path("./recipes").resolve()
|
||||
RUNNER_DICT = Coordinator.create_runner_dict(RECIPES_DIR)
|
||||
|
||||
|
||||
def test_complex_sorting() -> None:
|
||||
|
|
@ -46,7 +49,7 @@ def test_real_env_files() -> None:
|
|||
Path("envfiles/login.test.dev.local-it.cloud.env"), # authentik
|
||||
]
|
||||
env_files: list[EnvFile] = EnvManager._get_env_files(ENV_FILES)
|
||||
dependency_rules: list[DependencyRule] = EnvManager._get_dependency_rules(env_files)
|
||||
dependency_rules: list[DependencyRule] = EnvManager._get_dependency_rules(env_files, RUNNER_DICT)
|
||||
sorted_env_files = EnvManager.sort_env_files_by_rule(env_files, dependency_rules)
|
||||
assert sorted_env_files[0].env_type == "authentik"
|
||||
|
||||
|
|
@ -60,7 +63,7 @@ def test_real_env_files_duplicate() -> None:
|
|||
Path("envfiles/login.test.dev.local-it.cloud.env"), # authentik
|
||||
]
|
||||
env_files: list[EnvFile] = EnvManager._get_env_files(ENV_FILES)
|
||||
dependency_rules: list[DependencyRule] = EnvManager._get_dependency_rules(env_files)
|
||||
dependency_rules: list[DependencyRule] = EnvManager._get_dependency_rules(env_files, RUNNER_DICT)
|
||||
sorted_env_files = EnvManager.sort_env_files_by_rule(env_files, dependency_rules)
|
||||
assert sorted_env_files[0].env_type == "authentik"
|
||||
assert sorted_env_files[1].env_type == "authentik"
|
||||
|
|
@ -79,7 +82,7 @@ def test_real_env_files_duplicate_six() -> None:
|
|||
Path("envfiles/blog.test.dev.local-it.cloud.env"), # wordpress
|
||||
]
|
||||
env_files: list[EnvFile] = EnvManager._get_env_files(ENV_FILES)
|
||||
dependency_rules: list[DependencyRule] = EnvManager._get_dependency_rules(env_files)
|
||||
dependency_rules: list[DependencyRule] = EnvManager._get_dependency_rules(env_files, RUNNER_DICT)
|
||||
sorted_env_files = EnvManager.sort_env_files_by_rule(env_files, dependency_rules)
|
||||
assert sorted_env_files[0].env_type == "authentik"
|
||||
assert sorted_env_files[1].env_type == "authentik"
|
||||
|
|
@ -95,7 +98,7 @@ def test_env_manager() -> None:
|
|||
Path("envfiles/login.test.dev.local-it.cloud.env"), # authentik
|
||||
Path("envfiles/login.test.dev.local-it.cloud.env"), # authentik
|
||||
]
|
||||
ENV = EnvManager(env_paths_list)
|
||||
ENV = EnvManager(env_paths_list, RUNNER_DICT)
|
||||
assert ENV.env_files[0].env_type == "authentik"
|
||||
assert ENV.env_files[1].env_type == "authentik"
|
||||
assert ENV.env_files[2].env_type == "wordpress"
|
||||
|
|
|
|||
28
tests/test_url.py
Normal file
28
tests/test_url.py
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
from abratest.utils import BaseUrl
|
||||
|
||||
url_input = {
|
||||
"netloc": "blog.dev.local-it.cloud",
|
||||
"scheme": "https",
|
||||
}
|
||||
|
||||
url_obj = BaseUrl(**url_input)
|
||||
|
||||
|
||||
def test_urllib_domain_only():
|
||||
assert url_obj.get() == "https://blog.dev.local-it.cloud"
|
||||
|
||||
|
||||
def test_urllib_path_single():
|
||||
assert url_obj.get(path="something") == "https://blog.dev.local-it.cloud/something"
|
||||
|
||||
|
||||
def test_urllib_path_double():
|
||||
assert url_obj.get(path="something/else") == "https://blog.dev.local-it.cloud/something/else"
|
||||
|
||||
|
||||
def test_urllib_path_signle_suc_slash():
|
||||
assert url_obj.get(path="something/else/") == "https://blog.dev.local-it.cloud/something/else/"
|
||||
|
||||
|
||||
def test_urllib_path_signle_pre_slash():
|
||||
assert url_obj.get(path="/something/else") == "https://blog.dev.local-it.cloud/something/else"
|
||||
Loading…
Add table
Add a link
Reference in a new issue