mirror of
https://github.com/krkn-chaos/krkn.git
synced 2026-04-15 06:57:28 +00:00
* feat: add pytest-based CI test framework v2 with ephemeral namespace isolation Signed-off-by: ddjain <darjain@redhat.com> * feat(ci): add tests_v2 pytest functional test framework Signed-off-by: ddjain <darjain@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com> * feat: improve naming convention Signed-off-by: ddjain <darjain@redhat.com> * improve local setup script. Signed-off-by: ddjain <darjain@redhat.com> * added CI job for v2 test Signed-off-by: ddjain <darjain@redhat.com> * disabled broken test Signed-off-by: ddjain <darjain@redhat.com> * improved CI pipeline execution time Signed-off-by: ddjain <darjain@redhat.com> * chore: remove unwanted/generated files from PR Signed-off-by: ddjain <darjain@redhat.com> * clean up gitignore file Signed-off-by: ddjain <darjain@redhat.com> * fix copilot comments Signed-off-by: ddjain <darjain@redhat.com> * fixed copilot suggestion Signed-off-by: ddjain <darjain@redhat.com> * uncommented out test upload stage Signed-off-by: ddjain <darjain@redhat.com> * exclude CI/tests_v2 from test coverage reporting Signed-off-by: ddjain <darjain@redhat.com> * uploading style.css to fix broken report artifacts Signed-off-by: ddjain <darjain@redhat.com> * added openshift supported labels in namespace creatation api Signed-off-by: ddjain <darjain@redhat.com> --------- Signed-off-by: ddjain <darjain@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
"""
|
|
Preflight checks for CI/tests_v2: cluster reachability and test deps at session start.
|
|
"""
|
|
|
|
import logging
|
|
import subprocess
|
|
|
|
import pytest
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@pytest.fixture(scope="session", autouse=True)
|
|
def _preflight_checks(repo_root):
|
|
"""
|
|
Verify cluster is reachable and test deps are importable at session start.
|
|
Skips the session if cluster-info fails or required plugins are missing.
|
|
"""
|
|
# Check test deps (pytest plugins)
|
|
try:
|
|
import pytest_rerunfailures # noqa: F401
|
|
import pytest_html # noqa: F401
|
|
import pytest_timeout # noqa: F401
|
|
import pytest_order # noqa: F401
|
|
import xdist # noqa: F401
|
|
except ImportError as e:
|
|
pytest.skip(
|
|
f"Missing test dependency: {e}. "
|
|
"Run: pip install -r CI/tests_v2/requirements.txt"
|
|
)
|
|
|
|
# Check cluster reachable and log server URL
|
|
result = subprocess.run(
|
|
["kubectl", "cluster-info"],
|
|
cwd=repo_root,
|
|
capture_output=True,
|
|
text=True,
|
|
timeout=10,
|
|
)
|
|
if result.returncode != 0:
|
|
pytest.skip(
|
|
f"Cluster not reachable (kubectl cluster-info failed). "
|
|
f"Start a cluster (e.g. make setup) or check KUBECONFIG. stderr: {result.stderr or '(none)'}"
|
|
)
|
|
# Log first line of cluster-info (server URL) for debugging
|
|
if result.stdout:
|
|
first_line = result.stdout.strip().split("\n")[0]
|
|
logger.info("Preflight: %s", first_line)
|