Source code for src.pre_recebimento.cronograma_entrega.fixtures.factories.cronograma_factory

from datetime import date, timedelta

from factory import LazyFunction, Sequence, SubFactory
from factory.django import DjangoModelFactory
from faker import Faker

from src.pre_recebimento.base.fixtures.factories.unidade_medida_factory import (
    UnidadeMedidaFactory,
)
from src.pre_recebimento.cronograma_entrega.models import (
    Cronograma,
    EtapasDoCronograma,
)
from src.pre_recebimento.ficha_tecnica.fixtures.factories.ficha_tecnica_do_produto_factory import (
    FichaTecnicaFactory,
)
from src.terceirizada.fixtures.factories.terceirizada_factory import (
    ContratoFactory,
    EmpresaFactory,
)

fake = Faker("pt_BR")


[docs] class CronogramaFactory(DjangoModelFactory): """Factory para geração de dados de teste do modelo Cronograma.""" class Meta: model = Cronograma numero = Sequence( lambda n: f'{str(fake.unique.random_int(min=0, max=1000))}/{str(fake.date(pattern="%Y"))}' ) contrato = SubFactory(ContratoFactory) empresa = SubFactory(EmpresaFactory) unidade_medida = SubFactory(UnidadeMedidaFactory) ficha_tecnica = SubFactory(FichaTecnicaFactory) qtd_total_programada = LazyFunction( lambda: fake.random_number(digits=5, fix_len=True) / 100 )
[docs] class EtapasDoCronogramaFactory(DjangoModelFactory): """Factory para geração de dados de teste do modelo EtapasDoCronograma.""" class Meta: model = EtapasDoCronograma cronograma = SubFactory(CronogramaFactory) numero_empenho = LazyFunction( lambda: str(fake.random_number(digits=5, fix_len=True)) ) qtd_total_empenho = LazyFunction( lambda: fake.random_number(digits=5, fix_len=True) / 100 ) etapa = Sequence(lambda n: n + 1) parte = Sequence(lambda n: n + 1) data_programada = LazyFunction( lambda: fake.date_time_between( start_date=date.today() + timedelta(days=10) ).date() ) quantidade = LazyFunction(lambda: fake.random_number(digits=5, fix_len=True) / 100) total_embalagens = LazyFunction( lambda: fake.random_number(digits=5, fix_len=True) / 100 )