sched: server scheduler wiring, config section, transport lifespan, CLI flag (T12)
This commit is contained in:
@@ -13,6 +13,7 @@ from wf_config import (
|
||||
McpSourceConfig,
|
||||
RpcHttpTargetConfig,
|
||||
RpcHttpTransportConfig,
|
||||
SchedulerConfig,
|
||||
StdioSourceTransportConfig,
|
||||
StdlibSourceConfig,
|
||||
WorkflowConfigFile,
|
||||
@@ -490,3 +491,50 @@ def test_workflow_config_parses_oauth_provider_profile() -> None:
|
||||
"access_type": "offline",
|
||||
"prompt": "consent",
|
||||
}
|
||||
|
||||
|
||||
def test_server_config_scheduler_absent_is_none() -> None:
|
||||
config = WorkflowConfigFile.model_validate({"version": 1})
|
||||
|
||||
assert config.server.scheduler is None
|
||||
|
||||
|
||||
def test_server_config_parses_scheduler_section_with_values() -> None:
|
||||
config = WorkflowConfigFile.model_validate(
|
||||
{
|
||||
"version": 1,
|
||||
"server": {
|
||||
"scheduler": {
|
||||
"enabled": True,
|
||||
"poll_interval_s": 2.5,
|
||||
"max_concurrent_runs": 8,
|
||||
"drain_grace_s": 60.0,
|
||||
},
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
assert isinstance(config.server.scheduler, SchedulerConfig)
|
||||
assert config.server.scheduler.enabled is True
|
||||
assert config.server.scheduler.poll_interval_s == 2.5
|
||||
assert config.server.scheduler.max_concurrent_runs == 8
|
||||
assert config.server.scheduler.drain_grace_s == 60.0
|
||||
|
||||
|
||||
def test_server_config_scheduler_defaults_to_disabled() -> None:
|
||||
config = WorkflowConfigFile.model_validate(
|
||||
{"version": 1, "server": {"scheduler": {}}}
|
||||
)
|
||||
|
||||
assert config.server.scheduler is not None
|
||||
assert config.server.scheduler.enabled is False
|
||||
assert config.server.scheduler.poll_interval_s == 1.0
|
||||
assert config.server.scheduler.max_concurrent_runs == 4
|
||||
assert config.server.scheduler.drain_grace_s == 30.0
|
||||
|
||||
|
||||
def test_server_config_rejects_unknown_scheduler_key() -> None:
|
||||
with pytest.raises(ValidationError):
|
||||
WorkflowConfigFile.model_validate(
|
||||
{"version": 1, "server": {"scheduler": {"bogus_key": 1}}}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user