Coverage for quality/factories.py: 100%
37 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-26 15:42 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-26 15:42 +0000
1from string import ascii_uppercase
2from typing import Any
4import factory
6from .models import Channel, Check, Network, Operator, Station
9class OperatorFactory(factory.django.DjangoModelFactory):
10 class Meta:
11 model = Operator
13 agency = factory.Faker("bs")
14 website = factory.Faker("url")
16 @factory.post_generation
17 def stations(self, create: Any, extracted: Any, **__kwargs: Any) -> None:
18 if not create or not extracted:
19 # Simple build, or nothing to add, do nothing.
20 return
22 # Add the iterable of stations using bulk addition
23 self.stations.add(*extracted)
26class NetworkFactory(factory.django.DjangoModelFactory):
27 class Meta:
28 model = Network
29 django_get_or_create = ("code",)
31 code = factory.Faker("lexify", letters=ascii_uppercase, text="??")
32 description = factory.Faker("text")
35class StationFactory(factory.django.DjangoModelFactory):
36 class Meta:
37 model = Station
38 django_get_or_create = ("code",)
40 code = factory.Faker("lexify", letters=ascii_uppercase, text="????")
41 network = factory.SubFactory(NetworkFactory)
44class ChannelFactory(factory.django.DjangoModelFactory):
45 class Meta:
46 model = Channel
48 code = factory.Faker("lexify", letters=ascii_uppercase, text="???")
49 location = factory.Faker("numerify", text="##")
50 station = factory.SubFactory(StationFactory)
53class CheckFactory(factory.django.DjangoModelFactory):
54 class Meta:
55 model = Check
57 date = factory.Faker("date")
58 channel = factory.SubFactory(ChannelFactory)