Metadata-Version: 2.4
Name: crashbytes-testkit
Version: 1.1.1
Summary: Test data builders for Python — auto-generate dataclass instances from type hints.
Project-URL: Homepage, https://github.com/CrashBytes/crashbytes-testkit
Project-URL: Repository, https://github.com/CrashBytes/crashbytes-testkit
Project-URL: Issues, https://github.com/CrashBytes/crashbytes-testkit/issues
Author-email: CrashBytes <crashbytes@users.noreply.github.com>
License-Expression: MIT
License-File: LICENSE
Keywords: builder,dataclass,fixture,test-data,testing
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: mypy>=2.1; extra == 'dev'
Requires-Dist: pytest-cov>=7.1; extra == 'dev'
Requires-Dist: pytest>=9.0.3; extra == 'dev'
Requires-Dist: ruff>=0.15.16; extra == 'dev'
Description-Content-Type: text/markdown

# crashbytes-testkit

Test data builders for Python — auto-generate dataclass instances from type hints.

## Install

```bash
pip install crashbytes-testkit
```

## Usage

```python
from dataclasses import dataclass
from crashbytes_testkit import Fixture, Builder

@dataclass
class User:
    name: str
    age: int
    email: str

# Auto-generate from type hints
user = Fixture.create(User)
users = Fixture.create_many(User, 5)

# Override specific fields
admin = Fixture.create(User, name="Admin", age=30)

# Fluent builder
user = (
    Builder(User)
    .with_field("name", "Alice")
    .with_field("age", 25)
    .build()
)
```

Supports: `str`, `int`, `float`, `bool`, `bytes`, `datetime`, `date`, `UUID`, `list[T]`, `dict[K,V]`, `set[T]`, `tuple`, `Optional[T]`, nested dataclasses.

## License

MIT
