Files
state-corp-backend/tests/apps/external_data/factories.py
Aleksandr Meshchriakov bd8e1a8400
All checks were successful
CI/CD Pipeline / Code Quality Checks (push) Successful in 2m41s
CI/CD Pipeline / Run Tests (push) Successful in 2m47s
CI/CD Pipeline / Build Docker Images (push) Successful in 2m24s
CI/CD Pipeline / Push to Gitea Registry (push) Successful in 0s
CI/CD Pipeline / Deploy to Server (push) Successful in 0s
feat: import additional exchange sections
2026-05-12 15:19:26 +02:00

129 lines
4.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Factories for external data models."""
import factory
from apps.external_data.models import (
ArbitrationCase,
BankruptcyProcedure,
DefenseUnreliableSupplier,
IndustrialProduct,
InformationSecurityRegistryEntry,
LaborVacancy,
ProsecutorCheck,
PublicProcurement,
)
from faker import Faker
from tests.apps.organization.factories import OrganizationFactory
fake = Faker("ru_RU")
class IndustrialProductFactory(factory.django.DjangoModelFactory):
class Meta:
model = IndustrialProduct
organization = factory.SubFactory(OrganizationFactory)
product_name = factory.LazyAttribute(lambda _: fake.sentence(nb_words=3))
product_class = "electronics"
okpd2_code = "26.51.53"
tnved_code = "9015.10"
registry_number = factory.Sequence(lambda n: f"{1000 + n}/2026")
class ProsecutorCheckFactory(factory.django.DjangoModelFactory):
class Meta:
model = ProsecutorCheck
organization = factory.SubFactory(OrganizationFactory)
registration_number = factory.Sequence(lambda n: f"{2_900_000_000 + n}")
law_type = "294_fz"
control_authority = "Центральное управление Ростехнадзора"
prosecutor_office = "Московская городская прокуратура"
start_date = factory.LazyAttribute(lambda _: fake.date_this_decade())
status = "planned"
class PublicProcurementFactory(factory.django.DjangoModelFactory):
class Meta:
model = PublicProcurement
organization = factory.SubFactory(OrganizationFactory)
purchase_number = factory.Sequence(lambda n: f"{37_310_000_000_000_0000 + n:019d}")
law_type = "44_fz"
status = "signing"
contract_amount = factory.LazyAttribute(
lambda _: fake.pydecimal(left_digits=8, right_digits=2, positive=True)
)
contract_date = factory.LazyAttribute(lambda _: fake.date_this_year())
execution_start_date = factory.LazyAttribute(lambda _: fake.date_this_year())
execution_end_date = factory.LazyAttribute(
lambda _: fake.date_between(start_date="+30d", end_date="+365d")
)
purchase_name = factory.LazyAttribute(lambda _: fake.sentence(nb_words=6))
class ArbitrationCaseFactory(factory.django.DjangoModelFactory):
class Meta:
model = ArbitrationCase
organization = factory.SubFactory(OrganizationFactory)
case_number = factory.Sequence(lambda n: f"А40-{16_000 + n}/2026")
court_name = "Арбитражный суд города Москвы"
party_role = "defendant"
status = "hearing_scheduled"
decision_date = factory.LazyAttribute(lambda _: fake.date_this_year())
class InformationSecurityRegistryEntryFactory(factory.django.DjangoModelFactory):
class Meta:
model = InformationSecurityRegistryEntry
organization = factory.SubFactory(OrganizationFactory)
registry_name = "Реестр лицензий на деятельность по технической защите конфиденциальной информации"
presence_status = "present"
entry_number = "77-001234"
issued_at = factory.LazyAttribute(lambda _: fake.date_this_year())
expires_at = factory.LazyAttribute(lambda _: fake.date_this_year())
class BankruptcyProcedureFactory(factory.django.DjangoModelFactory):
class Meta:
model = BankruptcyProcedure
organization = factory.SubFactory(OrganizationFactory)
external_id = factory.Sequence(lambda n: f"fedresurs:{n}")
message_type = "Сообщение о намерении"
message_date = factory.LazyAttribute(lambda _: fake.date_this_year())
case_number = factory.Sequence(lambda n: f"А40-{20_000 + n}/2026")
status = "published"
source_url = factory.Sequence(lambda n: f"https://fedresurs.ru/message/{n}")
class DefenseUnreliableSupplierFactory(factory.django.DjangoModelFactory):
class Meta:
model = DefenseUnreliableSupplier
organization = factory.SubFactory(OrganizationFactory)
external_id = factory.Sequence(lambda n: f"fas-goz:{n}")
registry_source = "fas_goz"
registry_number = factory.Sequence(lambda n: f"ГОЗ-{n:04d}")
supplier_name = factory.LazyAttribute(lambda obj: obj.organization.name)
reason = "Уклонение от заключения контракта"
included_at = factory.LazyAttribute(lambda _: fake.date_this_year())
status = "active"
source_url = factory.Sequence(lambda n: f"https://fas.gov.ru/register/{n}")
class LaborVacancyFactory(factory.django.DjangoModelFactory):
class Meta:
model = LaborVacancy
organization = factory.SubFactory(OrganizationFactory)
external_id = factory.Sequence(lambda n: f"trudvsem:{n}")
vacancy_source = "trudvsem"
title = "Инженер-испытатель"
status = "open"
published_at = factory.LazyAttribute(lambda _: fake.date_this_year())
salary_amount = "175000.00"
source_url = factory.Sequence(lambda n: f"https://trudvsem.ru/vacancy/{n}")