fastmcp/tests/test_settings.py
Bill Easton 802ceaaa6b
Add targeted coverage tests (#4230)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2026-05-25 18:57:28 -04:00

39 lines
1.2 KiB
Python

import pytest
from fastmcp import settings
from fastmcp.settings import Settings
from fastmcp.utilities.tests import temporary_settings
def test_get_setting_reads_nested_values():
test_settings = Settings()
assert test_settings.get_setting("docket__name") == "fastmcp"
assert test_settings.get_setting("docket__redelivery_timeout__seconds") == 300
def test_set_setting_updates_nested_values():
test_settings = Settings()
test_settings.set_setting("docket__name", "worker-queue")
assert test_settings.docket.name == "worker-queue"
assert test_settings.get_setting("docket__name") == "worker-queue"
def test_temporary_settings_restores_nested_values():
original_name = settings.get_setting("docket__name")
with temporary_settings(docket__name="temporary-queue"):
assert settings.get_setting("docket__name") == "temporary-queue"
assert settings.get_setting("docket__name") == original_name
def test_get_setting_raises_for_missing_nested_parent():
test_settings = Settings()
with pytest.raises(AttributeError) as exc_info:
test_settings.get_setting("docket__missing__value")
assert str(exc_info.value) == "Setting missing does not exist."