Isolate cross-database repair validation
Some checks failed
CI / test (push) Has been cancelled

This commit is contained in:
2026-08-28 13:26:43 +02:00
parent aa979f3ca9
commit 75894f8b52
4 changed files with 116 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
import threading
from pathlib import Path
from unittest.mock import Mock, patch
from unittest.mock import MagicMock, Mock, patch
from test_config import settings
@@ -44,6 +44,7 @@ def test_stop_signal_interrupts_worker_wait() -> None:
def test_database_credentials_are_only_passed_to_test_process() -> None:
worker = AutomationWorker(settings())
worker._prepare_test_schema = Mock()
workspace = Mock()
workspace.run.return_value = Mock(returncode=0, stdout="ok", stderr="")
@@ -61,8 +62,25 @@ def test_database_credentials_are_only_passed_to_test_process() -> None:
assert environment["COCKPIT_CONFIG_DATABASE"] == "cockpit_agent_test"
def test_test_schema_creates_minimal_erp_lookup(monkeypatch) -> None:
worker = AutomationWorker(settings())
cursor = Mock()
connection = MagicMock()
connection.cursor.return_value.__enter__.return_value = cursor
connect = Mock(return_value=connection)
monkeypatch.setattr("lai_automation.worker.pymysql.connect", connect)
worker._prepare_test_schema()
assert connect.call_args.kwargs["database"] == "customer_agent_test"
assert "CREATE TABLE IF NOT EXISTS FK_Nummerkreis" in cursor.execute.call_args.args[0]
assert cursor.executemany.call_args.args[1][0] == (3, "Rechnung", "RG")
connection.close.assert_called_once()
def test_validation_commands_are_logged_without_output(caplog) -> None:
worker = AutomationWorker(settings())
worker._prepare_test_schema = Mock()
workspace = Mock()
workspace.run.return_value = Mock(returncode=0, stdout="sensitive output", stderr="")
@@ -76,6 +94,7 @@ def test_validation_commands_are_logged_without_output(caplog) -> None:
def test_failed_validation_preserves_start_and_end_of_long_output() -> None:
worker = AutomationWorker(settings())
worker._prepare_test_schema = Mock()
workspace = Mock()
workspace.run.return_value = Mock(
returncode=1,