Перейти к содержанию

Введение

FUCKTAR (Flexible Universal Content Kernel: Templating, Automation & Randomization) - это мощный генератор тестовых данных на Python, основанный на аннотациях типов и регулярных выражениях. Он позволяет создавать реалистичные тестовые данные для различных сценариев тестирования.

Что такое FUCKTAR?

FUCKTAR - это библиотека для генерации тестовых данных, которая использует современные возможности Python, такие как аннотации типов и дата-классы, для создания структурированных и типизированных тестовых данных. Библиотека позволяет определять паттерны генерации с помощью регулярных выражений и обеспечивает уникальность данных при необходимости.

Основные возможности

Генерация данных на основе аннотаций типов

FUCKTAR использует аннотации типов Python для определения структуры генерируемых данных, что обеспечивает строгую типизацию и предсказуемость.

Поддержка уникальности данных

Библиотека предоставляет механизм контроля уникальности сгенерированных объектов, что особенно полезно при тестировании систем, где уникальность данных критична.

Многопоточная безопасность

FUCKTAR безопасно работает в многопоточных приложениях благодаря использованию файловых блокировок при сохранении истории генерации.

История генерации

Все сгенерированные данные сохраняются в файловой системе, что позволяет отслеживать историю генерации и избегать дубликатов между сессиями.

Встроенные паттерны

Библиотека предоставляет набор готовых паттернов для генерации различных типов данных, включая пользовательские данные, сетевые идентификаторы, географические данные и другие.

Гибкая конфигурация

FUCKTAR позволяет настраивать параметры генерации, включая установку значений по умолчанию, ограничение по времени генерации и другие параметры.

Когда использовать FUCKTAR?

FUCKTAR идеально подходит для следующих сценариев:

  • Генерация тестовых данных для unit-тестов
  • Создание фикстур для интеграционного тестирования
  • Наполнение баз данных тестовыми данными
  • Генерация данных для демонстрации работы приложений
  • Создание mock-данных для API

Архитектура

FUCKTAR следует принципам чистой архитектуры, разделяя ответственность между различными компонентами:

  • Генераторы - отвечают за непосредственную генерацию данных
  • Паттерны - определяют правила генерации для конкретных типов данных
  • Хранилище - управляет сохранением и загрузкой истории генерации
  • Сервисы - обеспечивают вспомогательную функциональность

Эта архитектура делает библиотеку гибкой и расширяемой, позволяя легко добавлять новые типы данных и паттерны генерации.