Spaces:
Sleeping
Sleeping
File size: 1,686 Bytes
a345062 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import pytest
import pandas as pd
# Importiere die Top-Level-Funktionen, die die Integration darstellen
from app import run_and_display
from cognitive_mapping_probe.orchestrator_seismograph import run_seismic_analysis
def test_end_to_end_with_mock_llm(mock_llm, mocker):
"""
Ein End-to-End-Integrationstest, der den gesamten Datenfluss von der App
über den Orchestrator bis zum (gemockten) LLM validiert.
Dieser Test ersetzt die Notwendigkeit für `pre_flight_checks.py`, indem er
die gesamte Kette in einer kontrollierten Testumgebung ausführt.
"""
# 1. Führe den Orchestrator mit dem `mock_llm` aus.
# Dies ist ein echter Aufruf, keine gemockte Funktion.
results = run_seismic_analysis(
model_id="mock_model",
prompt_type="control_long_prose",
seed=42,
num_steps=5,
progress_callback=mocker.MagicMock()
)
# ASSERT 1: Überprüfe, ob der Orchestrator plausible Ergebnisse liefert
assert "stats" in results
assert len(results["state_deltas"]) == 5
assert results["stats"]["mean_delta"] > 0
# 2. Mocke nun den Orchestrator, um die App-Logik mit seinen Ergebnissen zu füttern
mocker.patch('app.run_seismic_analysis', return_value=results)
# 3. Führe die App-Logik aus
_, plot_df, _ = run_and_display(
model_id="mock_model",
prompt_type="control_long_prose",
seed=42,
num_steps=5,
progress=mocker.MagicMock()
)
# ASSERT 2: Überprüfe, ob die App-Logik die Daten korrekt verarbeitet hat
assert isinstance(plot_df, pd.DataFrame)
assert len(plot_df) == 5
assert "State Change (Delta)" in plot_df.columns
|