| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import pytest
- from app.runner.bootstrap import runner_settings_from_env
- def test_runner_settings_require_signing_secret_and_explicit_dependencies(
- monkeypatch,
- ):
- required = {
- "DATABASE_URL": "postgresql://platform",
- "NEO4J_URI": "bolt://neo4j:7687",
- "NEO4J_USER": "neo4j",
- "NEO4J_PASSWORD": "test",
- "DATASOURCE_CREDENTIAL_MASTER_KEY": (
- "MDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWY="
- ),
- "DATASOURCE_CREDENTIAL_KEY_VERSION": "v1",
- "RUNNER_TASK_TOKEN_SECRET": "x" * 32,
- "RUNNER_HTTP_ALLOWED_HOSTS": "events.internal, audit.internal",
- }
- for key, value in required.items():
- monkeypatch.setenv(key, value)
- settings = runner_settings_from_env()
- assert settings.runtime.pool_size == 1
- assert settings.runtime.max_overflow == 1
- assert settings.runtime.max_idle_pools == 4
- assert settings.allowed_http_hosts == {
- "events.internal",
- "audit.internal",
- }
- assert "postgresql://platform" not in repr(settings)
- assert required["RUNNER_TASK_TOKEN_SECRET"] not in repr(settings)
- def test_runner_refuses_to_start_without_a_task_token_secret(monkeypatch):
- monkeypatch.delenv("RUNNER_TASK_TOKEN_SECRET", raising=False)
- with pytest.raises(ValueError, match="RUNNER_TASK_TOKEN_SECRET"):
- runner_settings_from_env()
|