from factory import DjangoModelFactory, Sequence, SubFactory from factory.fuzzy import FuzzyText, FuzzyChoice, FuzzyInteger from ..models import (Region, Site, MunicipalLocation, StudyLocation, StorageLocation) class RegionFactory(DjangoModelFactory): class Meta: model = Region name = Sequence(lambda n: 'region{}'.format(n)) code = Sequence(lambda n: 'r{}'.format(n)) sort_order = Sequence(lambda n: n) class SiteFactory(DjangoModelFactory): class Meta: model = Site region = SubFactory(RegionFactory) name = Sequence(lambda n: 'site{}'.format(n)) code = Sequence(lambda n: 's{}'.format(n)) description = FuzzyText(length=100) sort_order = Sequence(lambda n: n) class MunicipalLocationFactory(DjangoModelFactory): class Meta: model = MunicipalLocation name = Sequence(lambda n: 'municipal_location{}'.format(n)) code = Sequence(lambda n: 'ml{}'.format(n)) municipal_location_type = FuzzyText(length=50) description = FuzzyText(length=255) sort_order = Sequence(lambda n: n) class StudyLocationFactory(DjangoModelFactory): class Meta: model = StudyLocation site = SubFactory(SiteFactory) name = Sequence(lambda n: 'study_location{}'.format(n)) code = Sequence(lambda n: 'sl{}'.format(n)) treatment_type = FuzzyText(length=100) municipal_location = SubFactory(MunicipalLocationFactory) collecting_location = FuzzyChoice([True, False]) description = FuzzyText(length=255) sort_order = Sequence(lambda n: n) class StorageLocationFactory(DjangoModelFactory): class Meta: model = StorageLocation code = Sequence(lambda n: 'sl{}'.format(n)) facility = FuzzyText(length=100) building = FuzzyText(length=100) room = FuzzyText(length=50) freezer = FuzzyText(length=50) temp_c = FuzzyInteger(-100, 100) description = FuzzyText(length=255) sort_order = Sequence(lambda n: n)