Initialize isolated database before agent tests
This commit is contained in:
@@ -43,6 +43,8 @@ Die nachgelagerten Testprozesse erhalten separat konfigurierte `TEST_DB_*`-Zugan
|
||||
Dieser Benutzer darf ausschliesslich die isolierten Testschemas bearbeiten. Fuer Laravel
|
||||
werden daraus `DB_*`, `ERP_DB_*` und `COCKPIT_CONFIG_DATABASE` gesetzt; Aider selbst sieht
|
||||
diese Werte nie. Produktive ERP- oder Kundenzugangsdaten duerfen hier nicht verwendet werden.
|
||||
Vor jedem Testlauf initialisiert `php artisan migrate:fresh --force` das isolierte Laravel-
|
||||
Schema neu. Deshalb muessen alle `TEST_DB_*`-Schemas dediziert und vollstaendig entbehrlich sein.
|
||||
|
||||
Laravel-Tests laufen mit PHP und Composer direkt im isolierten Worker. Der Docker-Socket
|
||||
des Hosts wird nicht eingebunden. Abgebrochene Claims werden nach standardmaessig 90
|
||||
|
||||
@@ -22,7 +22,7 @@ services:
|
||||
MISTRAL_API_KEY: ${MISTRAL_API_KEY:-}
|
||||
POLL_SECONDS: ${POLL_SECONDS:-60}
|
||||
STALE_CLAIM_MINUTES: ${STALE_CLAIM_MINUTES:-90}
|
||||
TEST_COMMANDS: ${TEST_COMMANDS:-composer install --no-interaction --prefer-dist;;php artisan test}
|
||||
TEST_COMMANDS: ${TEST_COMMANDS:-composer install --no-interaction --prefer-dist;;php artisan migrate:fresh --force;;php artisan test}
|
||||
TEST_DB_HOST: ${TEST_DB_HOST:-host.docker.internal}
|
||||
TEST_DB_PORT: ${TEST_DB_PORT:-33060}
|
||||
TEST_DB_NAME: ${TEST_DB_NAME:-laravel_ai_chat_agent_test}
|
||||
|
||||
@@ -75,7 +75,7 @@ class Settings:
|
||||
test_commands=_commands(
|
||||
os.getenv(
|
||||
"TEST_COMMANDS",
|
||||
"composer install --no-interaction --prefer-dist;;php artisan test",
|
||||
"composer install --no-interaction --prefer-dist;;php artisan migrate:fresh --force;;php artisan test",
|
||||
)
|
||||
),
|
||||
test_database_host=os.getenv("TEST_DB_HOST", "host.docker.internal"),
|
||||
|
||||
@@ -52,3 +52,14 @@ def test_pr_requires_gitea_token() -> None:
|
||||
config = settings(mode="pr", dry_run=False)
|
||||
with pytest.raises(ValueError, match="GITEA_TOKEN"):
|
||||
config.validate()
|
||||
|
||||
|
||||
def test_default_commands_initialize_disposable_laravel_schema(monkeypatch) -> None:
|
||||
monkeypatch.setenv("FAILURE_DB_PASSWORD", "failure-secret")
|
||||
monkeypatch.setenv("TEST_DB_PASSWORD", "test-secret")
|
||||
monkeypatch.delenv("TEST_COMMANDS", raising=False)
|
||||
|
||||
config = Settings.from_env()
|
||||
|
||||
assert "php artisan migrate:fresh --force" in config.test_commands
|
||||
assert config.test_commands[-1] == "php artisan test"
|
||||
|
||||
Reference in New Issue
Block a user