feat: BreakPilot PWA - Full codebase (clean push without large binaries)
Some checks failed
Tests / Go Tests (push) Has been cancelled
Tests / Python Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / Go Lint (push) Has been cancelled
Tests / Python Lint (push) Has been cancelled
Tests / Security Scan (push) Has been cancelled
Tests / All Checks Passed (push) Has been cancelled
Security Scanning / Secret Scanning (push) Has been cancelled
Security Scanning / Dependency Vulnerability Scan (push) Has been cancelled
Security Scanning / Go Security Scan (push) Has been cancelled
Security Scanning / Python Security Scan (push) Has been cancelled
Security Scanning / Node.js Security Scan (push) Has been cancelled
Security Scanning / Docker Image Security (push) Has been cancelled
Security Scanning / Security Summary (push) Has been cancelled
CI/CD Pipeline / Go Tests (push) Has been cancelled
CI/CD Pipeline / Python Tests (push) Has been cancelled
CI/CD Pipeline / Website Tests (push) Has been cancelled
CI/CD Pipeline / Linting (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Docker Build & Push (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / CI Summary (push) Has been cancelled
ci/woodpecker/manual/build-ci-image Pipeline was successful
ci/woodpecker/manual/main Pipeline failed
Some checks failed
Tests / Go Tests (push) Has been cancelled
Tests / Python Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / Go Lint (push) Has been cancelled
Tests / Python Lint (push) Has been cancelled
Tests / Security Scan (push) Has been cancelled
Tests / All Checks Passed (push) Has been cancelled
Security Scanning / Secret Scanning (push) Has been cancelled
Security Scanning / Dependency Vulnerability Scan (push) Has been cancelled
Security Scanning / Go Security Scan (push) Has been cancelled
Security Scanning / Python Security Scan (push) Has been cancelled
Security Scanning / Node.js Security Scan (push) Has been cancelled
Security Scanning / Docker Image Security (push) Has been cancelled
Security Scanning / Security Summary (push) Has been cancelled
CI/CD Pipeline / Go Tests (push) Has been cancelled
CI/CD Pipeline / Python Tests (push) Has been cancelled
CI/CD Pipeline / Website Tests (push) Has been cancelled
CI/CD Pipeline / Linting (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Docker Build & Push (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / CI Summary (push) Has been cancelled
ci/woodpecker/manual/build-ci-image Pipeline was successful
ci/woodpecker/manual/main Pipeline failed
All services: admin-v2, studio-v2, website, ai-compliance-sdk, consent-service, klausur-service, voice-service, and infrastructure. Large PDFs and compiled binaries excluded via .gitignore.
This commit is contained in:
86
backend/api/tests/registry/discovery/python_discovery.py
Normal file
86
backend/api/tests/registry/discovery/python_discovery.py
Normal file
@@ -0,0 +1,86 @@
|
||||
"""
|
||||
Python Test Discovery
|
||||
|
||||
Functions for discovering Python and BQAS tests in a codebase.
|
||||
"""
|
||||
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import List
|
||||
|
||||
from ...models import TestCase, TestFramework, TestCategory
|
||||
from ..config import PROJECT_ROOT
|
||||
|
||||
|
||||
def discover_python_tests(base_path: Path) -> List[TestCase]:
|
||||
"""Entdeckt Python-Tests in einem Verzeichnis"""
|
||||
tests = []
|
||||
if not base_path.exists():
|
||||
return tests
|
||||
|
||||
# Suche nach test_*.py Dateien
|
||||
test_files = list(base_path.rglob("test_*.py"))
|
||||
|
||||
for test_file in test_files:
|
||||
try:
|
||||
content = test_file.read_text()
|
||||
for i, line in enumerate(content.split("\n"), 1):
|
||||
stripped = line.strip()
|
||||
# Test-Funktionen
|
||||
if stripped.startswith("def test_"):
|
||||
name_end = stripped.find("(")
|
||||
if name_end > 4:
|
||||
func_name = stripped[4:name_end]
|
||||
tests.append(TestCase(
|
||||
id=f"{test_file.stem}_{func_name}",
|
||||
name=func_name,
|
||||
file_path=str(test_file.relative_to(PROJECT_ROOT)),
|
||||
line_number=i,
|
||||
framework=TestFramework.PYTEST,
|
||||
category=TestCategory.UNIT,
|
||||
))
|
||||
# Async Test-Methoden
|
||||
elif stripped.startswith("async def test_"):
|
||||
name_end = stripped.find("(")
|
||||
if name_end > 10:
|
||||
func_name = stripped[10:name_end]
|
||||
tests.append(TestCase(
|
||||
id=f"{test_file.stem}_{func_name}",
|
||||
name=func_name,
|
||||
file_path=str(test_file.relative_to(PROJECT_ROOT)),
|
||||
line_number=i,
|
||||
framework=TestFramework.PYTEST,
|
||||
category=TestCategory.UNIT,
|
||||
))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
return tests
|
||||
|
||||
|
||||
def discover_bqas_tests(base_path: Path, test_type: str) -> List[TestCase]:
|
||||
"""Entdeckt BQAS-Tests (Golden/RAG)"""
|
||||
tests = []
|
||||
if not base_path.exists():
|
||||
return tests
|
||||
|
||||
# Suche nach JSON-Dateien
|
||||
test_files = list(base_path.rglob("*.json"))
|
||||
|
||||
for test_file in test_files:
|
||||
try:
|
||||
content = json.loads(test_file.read_text())
|
||||
if isinstance(content, list):
|
||||
for i, test_case in enumerate(content):
|
||||
test_id = test_case.get("id", f"{test_file.stem}_{i}")
|
||||
tests.append(TestCase(
|
||||
id=test_id,
|
||||
name=test_case.get("name", test_id),
|
||||
file_path=str(test_file.relative_to(PROJECT_ROOT)),
|
||||
framework=TestFramework.BQAS_GOLDEN if test_type == "golden" else TestFramework.BQAS_RAG,
|
||||
category=TestCategory.BQAS,
|
||||
))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
return tests
|
||||
Reference in New Issue
Block a user