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

Module contents