Skip to content

Fixtures API

Helpers to build minimal valid POST payloads from Django forms.

make_form_fixture

django_doctor.fixtures.make_form_fixture(form_cls, overrides=None)

Return a minimal dict of form-ready values for every required field.

Source code in src/django_doctor/fixtures.py
def make_form_fixture(form_cls: type[forms.BaseForm], overrides: dict | None = None) -> dict:
    """Return a minimal dict of form-ready values for every required field."""
    form = form_cls()
    data: dict[str, Any] = {}
    for name, field in form.fields.items():
        if not field.required:
            continue
        try:
            value = _sample_value(field)
        except Exception:
            continue
        if value is _SKIP:
            continue
        data[name] = value
    if overrides:
        data.update(overrides)
    return data

resolve_required_fields

django_doctor.fixtures.resolve_required_fields(form_cls)

Names of every required field on this form (handy for reporting).

Source code in src/django_doctor/fixtures.py
def resolve_required_fields(form_cls: type[forms.BaseForm]) -> list[str]:
    """Names of every required field on this form (handy for reporting)."""
    form = form_cls()
    return [name for name, field in form.fields.items() if field.required]