Metadata-Version: 2.5
Name: uploadkit-testing
Version: 0.1.0
Summary: Testing utilities for UploadKit (fake providers, fixtures, assertions)
Project-URL: Homepage, https://github.com/uploadkit/uploadkit-testing
Project-URL: Repository, https://github.com/uploadkit/uploadkit-testing
Author: UploadKit
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: fixtures,testing,uploadkit
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software 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: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: pytest>=8.0
Requires-Dist: uploadkit>=0.1.0
Provides-Extra: dev
Requires-Dist: coverage>=7.0; extra == 'dev'
Description-Content-Type: text/markdown

# uploadkit-testing

Testing utilities for UploadKit.

## What problem does this solve?

Provides fake storage providers, in-memory upload files, and assertion helpers so packages and apps can test upload pipelines without real object storage.

## When to use it

Use this package in tests only.

## When not to use it

Never ship this as runtime functionality in production.

## Installation

Requires **Python 3.10+**.

```bash
pip install uploadkit-testing
```

## Quick Start

```python
from uploadkit import Uploader, UploadPolicy
from uploadkit_testing import FakeStorageProvider, make_upload_file

storage = FakeStorageProvider()
uploader = Uploader(UploadPolicy(), storage)
result = uploader.upload(
    make_upload_file(b"hello", name="hello.txt"),
    bucket="test",
    object_name="hello.txt",
)
assert result.etag == "fake-etag"
```

## Architecture

Thin test doubles that satisfy UploadKit Core protocols. No production code paths.

## Public API

| Symbol | Kind |
|--------|------|
| `FakeStorageProvider` | Public |
| `MemoryUploadFile` / `make_upload_file` | Public |
| `assert_raises_uploader_error` / `assert_upload_fails` | Public |

## Performance

Docker Compose harness for FastAPI upload performance (MinIO + curl smoke + k6 load) lives in [`perf/`](perf/).

- How to run: [`perf/README.md`](perf/README.md)
- Choosing chunk / part size and workers: [`perf/CHUNK_SIZE_GUIDE.md`](perf/CHUNK_SIZE_GUIDE.md)

## Changelog

See [CHANGELOG.md](CHANGELOG.md).

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md).
