удаление test-контура (дополнение)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
"""Хардненинг API: раскрытие схемы закрыто в production, открыто в dev/test (#61, F6)."""
|
||||
"""Хардненинг API: раскрытие схемы закрыто в production, открыто в dev (#61, F6)."""
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
@@ -23,14 +23,12 @@ def test_enabled_methods_by_env(monkeypatch):
|
||||
|
||||
monkeypatch.setattr(settings, "app_env", "development")
|
||||
assert set(enabled_methods()) == {"password", "telegram", "stub"}
|
||||
monkeypatch.setattr(settings, "app_env", "test")
|
||||
assert enabled_methods() == ["password", "telegram"] # test (прод-клон) → без stub
|
||||
monkeypatch.setattr(settings, "app_env", "production")
|
||||
assert enabled_methods() == ["password", "telegram"] # prod → без stub
|
||||
|
||||
|
||||
def test_env_flags_and_db_path(monkeypatch):
|
||||
"""dev → файл дева; test и prod → том /data (общая ветвь is_development)."""
|
||||
"""dev → файл дева; prod → том /data."""
|
||||
from app.core.config import settings
|
||||
|
||||
monkeypatch.setattr(settings, "dev_database_url", "sqlite:///dev.db")
|
||||
@@ -38,8 +36,6 @@ def test_env_flags_and_db_path(monkeypatch):
|
||||
|
||||
monkeypatch.setattr(settings, "app_env", "development")
|
||||
assert settings.is_development and settings.database_url == "sqlite:///dev.db"
|
||||
monkeypatch.setattr(settings, "app_env", "test")
|
||||
assert settings.is_test and settings.database_url == "sqlite:////data/prod.db"
|
||||
monkeypatch.setattr(settings, "app_env", "production")
|
||||
assert settings.is_production and settings.database_url == "sqlite:////data/prod.db"
|
||||
|
||||
|
||||
@@ -65,3 +65,15 @@ def test_development_allows_defaults():
|
||||
admin_password=config._DEFAULT_ADMIN_PASSWORD,
|
||||
)
|
||||
assert s.is_development
|
||||
|
||||
|
||||
@pytest.mark.parametrize("app_env", ["test", "staging", ""])
|
||||
def test_unknown_app_env_rejected(app_env):
|
||||
# Отдельного test-контура больше нет: такое значение не должно молча включать прод-пути.
|
||||
with pytest.raises(ValidationError):
|
||||
config.Settings(app_env=app_env)
|
||||
|
||||
|
||||
def test_app_env_case_insensitive():
|
||||
s = config.Settings(app_env="Development")
|
||||
assert s.is_development
|
||||
|
||||
Reference in New Issue
Block a user