feat: prepare ARR for controlled public deployment
This commit is contained in:
64
tests/test_agent_config.py
Normal file
64
tests/test_agent_config.py
Normal file
@@ -0,0 +1,64 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from agent_integration.config import AgentConfig, AgentConfigurationError
|
||||
|
||||
|
||||
class AgentConfigTests(unittest.TestCase):
|
||||
def test_from_env_requires_key_for_network_use(self):
|
||||
with self.assertRaises(AgentConfigurationError):
|
||||
AgentConfig.from_env({}, require_api_key=True)
|
||||
|
||||
def test_redacted_summary_never_contains_key(self):
|
||||
secret = "df_open_do_not_print_this_value"
|
||||
config = AgentConfig.from_env(
|
||||
{
|
||||
"DEERFLOW_OPEN_API_KEY": secret,
|
||||
"DEERFLOW_BASE_URL": "https://example.test/",
|
||||
"DEERFLOW_AUTH_MODE": "x-api-key",
|
||||
"DEERFLOW_SESSION_DB": "runtime/test.sqlite3",
|
||||
}
|
||||
)
|
||||
|
||||
summary = config.redacted_summary()
|
||||
|
||||
self.assertEqual(summary["base_url"], "https://example.test")
|
||||
self.assertEqual(summary["auth_mode"], "x-api-key")
|
||||
self.assertTrue(summary["api_key_configured"])
|
||||
self.assertNotIn(secret, repr(summary))
|
||||
self.assertEqual(config.session_db, Path("runtime/test.sqlite3"))
|
||||
|
||||
def test_invalid_url_auth_mode_and_timeout_are_rejected(self):
|
||||
cases = (
|
||||
{"DEERFLOW_OPEN_API_KEY": "key", "DEERFLOW_BASE_URL": "not-a-url"},
|
||||
{"DEERFLOW_OPEN_API_KEY": "key", "DEERFLOW_BASE_URL": "http://remote.example"},
|
||||
{"DEERFLOW_OPEN_API_KEY": "key", "DEERFLOW_AUTH_MODE": "basic"},
|
||||
{"DEERFLOW_OPEN_API_KEY": "key", "DEERFLOW_TIMEOUT_SECONDS": "0"},
|
||||
)
|
||||
for env in cases:
|
||||
with self.subTest(env=env), self.assertRaises(AgentConfigurationError):
|
||||
AgentConfig.from_env(env)
|
||||
|
||||
def test_example_placeholder_is_not_treated_as_configured(self):
|
||||
config = AgentConfig.from_env(
|
||||
{"DEERFLOW_OPEN_API_KEY": "df_open_replace_me"},
|
||||
require_api_key=False,
|
||||
)
|
||||
self.assertFalse(config.api_key_configured)
|
||||
with self.assertRaises(AgentConfigurationError):
|
||||
AgentConfig.from_env({"DEERFLOW_OPEN_API_KEY": "df_open_replace_me"})
|
||||
|
||||
def test_plain_http_is_allowed_for_local_development_only(self):
|
||||
config = AgentConfig.from_env(
|
||||
{
|
||||
"DEERFLOW_OPEN_API_KEY": "df_open_test",
|
||||
"DEERFLOW_BASE_URL": "http://127.0.0.1:8000",
|
||||
}
|
||||
)
|
||||
self.assertEqual(config.base_url, "http://127.0.0.1:8000")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main(verbosity=2)
|
||||
Reference in New Issue
Block a user