Добавлены тесты для Environment

This commit is contained in:
2026-07-20 15:33:46 +03:00
parent 781e885ffb
commit 304fa18bce
16 changed files with 928 additions and 14 deletions

View File

@@ -5,7 +5,7 @@
# Все права защищены. Лицензия: MIT
"""
Описание класса EnvUtils
Описание класса Environment
"""
import os
@@ -21,16 +21,16 @@ class Environment:
Реализация доступа к параметрам и переменным окружения
"""
__base_dir: str
_base_dir: str
""" Путь к корневой директории приложения """
__is_initialized: bool
_is_initialized: bool
""" Признак инициализации конфигурации """
__env: Env
_env: Env
""" Хранилище переменных окружения """
__env_prefix: str
_env_prefix: str
""" Префикс переменных окружения """
@classmethod
@@ -42,11 +42,12 @@ class Environment:
:param env_prefix: Префикс переменных окружения
"""
cls.__base_dir = base_dir
cls.__env = environ.Env()
cls.__env_prefix = env_prefix
environ.Env.read_env(os.path.join(cls.__base_dir, '.env'))
cls.__is_initialized = True
cls._base_dir = base_dir
cls._env = environ.Env()
cls._env_prefix = env_prefix
env_path = os.path.join(cls._base_dir, '.env')
environ.Env.read_env(env_path)
cls._is_initialized = True
@classmethod
def env(cls) -> Env:
@@ -57,7 +58,7 @@ class Environment:
"""
cls._check_initialization()
return cls.__env
return cls._env
@classmethod
def get_str(cls, name: str, default_value: str | NoValue = Env.NOTSET) -> str:
@@ -158,7 +159,7 @@ class Environment:
:return: Имя переменной окружения
"""
return f"{cls.__env_prefix}{name}"
return f"{cls._env_prefix}{name}"
@classmethod
def _check_initialization(cls) -> None:
@@ -166,5 +167,5 @@ class Environment:
Проверяет завершение инициализации
"""
if not cls.__is_initialized:
if not cls._is_initialized:
raise ImproperlyConfigured(f"Class {__class__.__name__} is not initialized.")