/
HookDev-Arch
/
ServerMonitor
Обзор
Документация
Войти
/
HookDev-Arch
/
ServerMonitor
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
2
CI/CD
Аналитика
Безопасность
master
tests/test_basic.py
110 строк
4 KB
HookDev-Arch
upload files
09 окт 2025, 02:25
09 окт 2025, 02:25
96b383c
Код
Авторство
О чём код?
""" Базовые тесты для HookDev-Arch Dashboard v3.5 """ import pytest import sys from pathlib import Path # Добавляем корневую директорию в путь sys.path.insert(0, str(Path(__file__).parent.parent)) from core.config import settings from core.security import data_validator, auth_manager from core.logger import get_logger class TestConfiguration: """Тесты конфигурации""" def test_settings_loaded(self): """Тест загрузки настроек""" assert settings.app_name == "HookDev-Arch Dashboard" assert settings.version == "3.5.0" assert isinstance(settings.port, int) assert settings.port > 0 def test_debug_mode(self): """Тест режима отладки""" assert isinstance(settings.debug, bool) class TestSecurity: """Тесты безопасности""" def test_host_validation(self): """Тест валидации хоста""" # Валидные IP assert data_validator.validate_host("192.168.1.1") == "192.168.1.1" assert data_validator.validate_host("127.0.0.1") == "127.0.0.1" # Валидные домены assert data_validator.validate_host("example.com") == "example.com" assert data_validator.validate_host("sub.example.com") == "sub.example.com" # Невалидные with pytest.raises(ValueError): data_validator.validate_host("invalid..host") with pytest.raises(ValueError): data_validator.validate_host("999.999.999.999") def test_port_validation(self): """Тест валидации порта""" assert data_validator.validate_port(22) == 22 assert data_validator.validate_port(8080) == 8080 assert data_validator.validate_port(65535) == 65535 with pytest.raises(ValueError): data_validator.validate_port(0) with pytest.raises(ValueError): data_validator.validate_port(65536) def test_name_validation(self): """Тест валидации имени""" assert data_validator.validate_name("server-01") == "server-01" assert data_validator.validate_name("My Server") == "My Server" with pytest.raises(ValueError): data_validator.validate_name("") with pytest.raises(ValueError): data_validator.validate_name("a") def test_token_creation(self): """Тест создания токена""" token = auth_manager.create_token("test_user", ["read"]) assert isinstance(token, str) assert len(token) > 0 def test_token_verification(self): """Тест проверки токена""" token = auth_manager.create_token("test_user", ["read"]) payload = auth_manager.verify_token(token) assert payload["user_id"] == "test_user" assert "read" in payload["permissions"] class TestLogging: """Тесты логирования""" def test_logger_creation(self): """Тест создания логгера""" logger = get_logger("test") assert logger is not None assert logger.name == "hookdev_arch.test" def test_logger_levels(self): """Тест уровней логирования""" logger = get_logger("test") # Проверяем, что логгер не падает при записи logger.debug("Debug message") logger.info("Info message") logger.warning("Warning message") logger.error("Error message") if __name__ == "__main__": pytest.main([__file__])