fairdm.factories#

Quick Start#

Import factories from this module::

from fairdm.factories import ProjectFactory, DatasetFactory, SampleFactory

Create instances with minimal fields::

project = ProjectFactory()  # No descriptions/dates
dataset = DatasetFactory(project=project)

Opt-in to metadata creation::

project = ProjectFactory(
    descriptions=2,  # Create 2 descriptions
    dates=1,  # Create 1 date
)

Specify custom types by address (validated against the model’s collection)::

project = ProjectFactory(
    descriptions=2,
    descriptions__types=[ABSTRACT, f"{DESCRIPTION_TYPES}/objectives"],
)

Available Factories#

Core Models: - ProjectFactory - Create Project instances - DatasetFactory - Create Dataset instances - SampleFactory - Abstract. Subclass it to build a concrete specimen type, e.g. demo.factories.RockSampleFactory. - MeasurementFactory - Abstract. Subclass it to build a concrete measurement type, e.g. demo.factories.ExampleMeasurementFactory. sample has no default; pass a concrete specimen instance.

Contributors: - UserFactory - Create User instances - PersonFactory - Create Person contributor instances - OrganizationFactory - Create Organization contributor instances - ContributorFactory - Generic contributor factory - ContributorIdentifierFactory - Create contributor identifiers (ORCID, ROR, …)

Relations: - SampleIdentifierFactory - Create sample identifiers - SampleRelationFactory - Create sample-to-sample relationships - MeasurementDescriptionFactory - Create measurement descriptions - MeasurementDateFactory - Create measurement dates - MeasurementIdentifierFactory - Create measurement identifiers

All core model factories support opt-in metadata via: - descriptions=, descriptions__types=[…] - dates=, dates__types=[…]

ProjectFactory, DatasetFactory, PersonFactory and OrganizationFactory also take an opt-in image: omitted, no file is written; with_image=True generates a placeholder; image=<file> uses that file directly.

Documentation#

Portal Developers: See docs/developers/how-to/test-a-portal-with-fairdm-factories.md

Framework Contributors: See docs/contributing/testing/

API Reference: See fairdm.factories.core module docstring

FairDM Test Factories.

This package provides factory_boy factories for creating test instances of FairDM models. All factories follow an opt-in pattern for related metadata objects.

Submodules#