Введение¶
FUCKTAR (Flexible Universal Content Kernel: Templating, Automation & Randomization) - это мощный генератор тестовых данных на Python, основанный на аннотациях типов и регулярных выражениях. Он позволяет создавать реалистичные тестовые данные для различных сценариев тестирования.
Что такое FUCKTAR?¶
FUCKTAR - это библиотека для генерации тестовых данных, которая использует современные возможности Python, такие как аннотации типов и дата-классы, для создания структурированных и типизированных тестовых данных. Библиотека позволяет определять паттерны генерации с помощью регулярных выражений и обеспечивает уникальность данных при необходимости.
Основные возможности¶
Генерация данных на основе аннотаций типов¶
FUCKTAR использует аннотации типов Python для определения структуры генерируемых данных, что обеспечивает строгую типизацию и предсказуемость.
Поддержка уникальности данных¶
Библиотека предоставляет механизм контроля уникальности сгенерированных объектов, что особенно полезно при тестировании систем, где уникальность данных критична.
Многопоточная безопасность¶
FUCKTAR безопасно работает в многопоточных приложениях благодаря использованию файловых блокировок при сохранении истории генерации.
История генерации¶
Все сгенерированные данные сохраняются в файловой системе, что позволяет отслеживать историю генерации и избегать дубликатов между сессиями.
Встроенные паттерны¶
Библиотека предоставляет набор готовых паттернов для генерации различных типов данных, включая пользовательские данные, сетевые идентификаторы, географические данные и другие.
Гибкая конфигурация¶
FUCKTAR позволяет настраивать параметры генерации, включая установку значений по умолчанию, ограничение по времени генерации и другие параметры.
Когда использовать FUCKTAR?¶
FUCKTAR идеально подходит для следующих сценариев:
- Генерация тестовых данных для unit-тестов
- Создание фикстур для интеграционного тестирования
- Наполнение баз данных тестовыми данными
- Генерация данных для демонстрации работы приложений
- Создание mock-данных для API
Архитектура¶
FUCKTAR следует принципам чистой архитектуры, разделяя ответственность между различными компонентами:
- Генераторы - отвечают за непосредственную генерацию данных
- Паттерны - определяют правила генерации для конкретных типов данных
- Хранилище - управляет сохранением и загрузкой истории генерации
- Сервисы - обеспечивают вспомогательную функциональность
Эта архитектура делает библиотеку гибкой и расширяемой, позволяя легко добавлять новые типы данных и паттерны генерации.