31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
"""Organization helpers for parser tests."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from django.utils import timezone
|
|
from organizations.models import Organization
|
|
|
|
|
|
def create_directory_organization(**kwargs) -> Organization:
|
|
"""Create an organization row that belongs to the authoritative directory."""
|
|
kwargs.setdefault("directory_imported_at", timezone.now())
|
|
return Organization.objects.create(**kwargs)
|
|
|
|
|
|
def get_or_create_directory_organization(
|
|
*,
|
|
defaults: dict | None = None,
|
|
**lookup,
|
|
) -> tuple[Organization, bool]:
|
|
"""Get or create an authoritative directory organization for ingestion tests."""
|
|
directory_defaults = dict(defaults or {})
|
|
directory_defaults.setdefault("directory_imported_at", timezone.now())
|
|
organization, created = Organization.objects.get_or_create(
|
|
defaults=directory_defaults,
|
|
**lookup,
|
|
)
|
|
if not created and organization.directory_imported_at is None:
|
|
organization.directory_imported_at = timezone.now()
|
|
organization.save(update_fields=["directory_imported_at"])
|
|
return organization, created
|