test_suite package
Submodules
test_suite.conftest module
Файл конфигурации pytest с фикстурами для тестирования ML моделей.
- test_suite.conftest.categorized_config_path(request)[исходный код]
Фикстура, предоставляющая пути к конфигам по категориям.
- test_suite.conftest.get_config_paths_by_category(category)[исходный код]
Получает пути к конфигам по категории.
- test_suite.conftest.get_project_root()[исходный код]
Возвращает корневую директорию проекта.
- test_suite.conftest.prepared_test_environment(categorized_config_path, tmp_path)[исходный код]
Фикстура для подготовки тестового окружения.
- test_suite.conftest.pytest_addoption(parser)[исходный код]
Добавляет опции командной строки для выбора категорий тестов.
- test_suite.conftest.smoke_config_path()[исходный код]
Фикстура для smoke тестов.
test_suite.test_categorized module
Тесты с возможностью выбора категорий конфигов.
- class test_suite.test_categorized.TestCategorizedConfigs[исходный код]
Базовые классы:
objectТесты для конфигов, разделенных по категориям.
- test_config_execution(categorized_config_path)[исходный код]
Тест успешного выполнения атаки для конфигов выбранной категории.
- test_smoke_config_only(smoke_config_path)[исходный код]
Тест только для smoke конфига.
test_suite.test_execution module
Модуль тестов для проверки успешного выполнения атак.
Содержит тесты, проверяющие корректность выполнения атак и отсутствие ошибок в процессе работы программы.
- test_suite.test_execution.test_attack_execution(prepared_test_environment)[исходный код]
Тест успешного выполнения атаки.
Проверяет, что атака была выполнена успешно без ошибок выполнения. Использует подготовленное тестовое окружение из фикстуры.
- Параметры:
prepared_test_environment (dict) – Подготовленное тестовое окружение
test_suite.test_report_content module
Модуль тестов для проверки содержимого отчетов.
Содержит тесты, проверяющие корректность содержимого JSON отчетов, включая метаданные, метрики атак и их валидность.
- test_suite.test_report_content.test_report_content(prepared_test_environment)[исходный код]
Тест содержимого отчета.
Проверяет корректность содержимого JSON отчета: наличие обязательных полей, типы данных и допустимые диапазоны значений метрик.
- Параметры:
prepared_test_environment (dict) – Подготовленное тестовое окружение
test_suite.test_report_structure module
Модуль тестов для проверки структуры отчетов.
Содержит тесты, проверяющие корректность структуры JSON отчетов и наличие всех обязательных секций и полей.
- test_suite.test_report_structure.test_report_structure(prepared_test_environment)[исходный код]
Тест структуры отчета.
Проверяет корректность структуры JSON отчета: наличие обязательных секций (metadata, metrics, examples) и их внутреннюю структуру. Использует вспомогательную функцию для загрузки и валидации.
- Параметры:
prepared_test_environment (dict) – Подготовленное тестовое окружение
test_suite.test_utils module
Вспомогательные утилиты для тестирования ML моделей и атак.
Этот модуль содержит функции для подготовки тестового окружения, запуска атак, обработки результатов и валидации отчетов. Все функции предназначены для использования в тестах pytest.
- test_suite.test_utils.create_temp_config(original_config_path: str, temp_dir: str) str[исходный код]
Создаёт временный конфиг с изменёнными путями для отчётов.
- test_suite.test_utils.find_report_paths(stdout: str, stderr: str, temp_dir: str)[исходный код]
Извлекает пути к отчетам из логов.
Анализирует stdout и stderr для извлечения путей к созданным JSON и HTML отчетам. Обрабатывает специальные случаи для моделей YOLO, которые сохраняют отчеты в подкаталогах.
- Параметры:
stdout (str) – Стандартный вывод выполненного процесса
stderr (str) – Стандартный поток ошибок выполненного процесса
temp_dir (str) – Временная директория, куда были сохранены отчеты
- Результат:
Кортеж из пути к JSON отчету и пути к HTML отчету, или (None, None) при ошибке
- Тип результата:
tuple[str, str] or tuple[None, None]
- test_suite.test_utils.get_project_root()[исходный код]
Возвращает абсолютный путь к корню проекта.
Определяет корневую директорию проекта как родительскую директорию относительно текущего файла.
- Результат:
Путь к корневой директории проекта
- Тип результата:
pathlib.Path
- test_suite.test_utils.load_and_validate_report(json_report_path, tmp_path)[исходный код]
Загружает и валидирует JSON отчет.
Загружает JSON отчет, проверяет его структуру и валидирует наличие обязательных полей. Сохраняет форматированный отчет для отладки и обрабатывает ошибки парсинга JSON.
- Параметры:
json_report_path (str or pathlib.Path) – Путь к JSON файлу отчета
tmp_path (pathlib.Path) – Временная директория для сохранения отладочной информации
- Результат:
Словарь с данными загруженного отчета
- Тип результата:
dict
- Исключение:
AssertionError – Если структура отчета некорректна или JSON невалиден
- test_suite.test_utils.run_attack(config_path: str)[исходный код]
Запускает атаку через командную строку с использованием venv.
Выполняет запуск основного скрипта checkai.py с указанным конфигурационным файлом в отдельном subprocess. Возвращает результат выполнения для дальнейшего анализа.
- Параметры:
config_path (str) – Путь к конфигурационному файлу для запуска атаки
- Результат:
Результат выполнения subprocess с stdout, stderr и кодом возврата
- Тип результата:
subprocess.CompletedProcess