feat: export state corp exchange sections
This commit is contained in:
@@ -12,14 +12,21 @@ from unittest.mock import Mock, patch
|
||||
from zipfile import ZipFile
|
||||
|
||||
from apps.exchange.state_corp_services import StateCorpExchangeService
|
||||
from apps.parsers.models import GenericParserRecord, ParserLoadLog
|
||||
from apps.parsers.models import (
|
||||
FinancialReport,
|
||||
FinancialReportLine,
|
||||
GenericParserRecord,
|
||||
ParserLoadLog,
|
||||
)
|
||||
from apps.registers.models import Register
|
||||
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
|
||||
from django.test import TestCase, override_settings
|
||||
|
||||
from tests.apps.parsers.factories import (
|
||||
IndustrialCertificateRecordFactory,
|
||||
IndustrialProductRecordFactory,
|
||||
InspectionRecordFactory,
|
||||
ManufacturerRecordFactory,
|
||||
ProcurementRecordFactory,
|
||||
)
|
||||
from tests.apps.registers.factories import (
|
||||
@@ -78,6 +85,25 @@ class StateCorpExchangeServiceTest(TestCase):
|
||||
started_at="2026-01-01",
|
||||
ended_at=None,
|
||||
)
|
||||
IndustrialCertificateRecordFactory.create(
|
||||
inn=str(organization.mn_inn),
|
||||
ogrn=str(organization.mn_ogrn),
|
||||
organisation_name=organization.pn_name,
|
||||
certificate_number="cert-001",
|
||||
issue_date="2026-01-10",
|
||||
issue_date_normalized="2026-01-10",
|
||||
expiry_date="2027-01-10",
|
||||
expiry_date_normalized="2027-01-10",
|
||||
certificate_file_url="https://minpromtorg.gov.ru/cert/001",
|
||||
registry_organization=organization,
|
||||
)
|
||||
ManufacturerRecordFactory.create(
|
||||
inn=str(organization.mn_inn),
|
||||
ogrn=str(organization.mn_ogrn),
|
||||
full_legal_name=organization.pn_name,
|
||||
address="г. Москва, ул. Тверская, д. 1",
|
||||
registry_organization=organization,
|
||||
)
|
||||
IndustrialProductRecordFactory.create(
|
||||
inn=str(organization.mn_inn),
|
||||
ogrn=str(organization.mn_ogrn),
|
||||
@@ -114,6 +140,42 @@ class StateCorpExchangeServiceTest(TestCase):
|
||||
max_price_amount="4500000.75",
|
||||
registry_organization=organization,
|
||||
)
|
||||
financial_report = FinancialReport.objects.create(
|
||||
external_id="fin-001",
|
||||
ogrn=str(organization.mn_ogrn),
|
||||
registry_organization=organization,
|
||||
file_name="fin_001_1027700132195.xlsx",
|
||||
file_hash="f" * 64,
|
||||
load_batch=1,
|
||||
status=FinancialReport.Status.SUCCESS,
|
||||
source=FinancialReport.SourceType.API,
|
||||
)
|
||||
FinancialReportLine.objects.create(
|
||||
report=financial_report,
|
||||
form_code="1",
|
||||
line_code="1600",
|
||||
line_name="Баланс",
|
||||
year=2025,
|
||||
period_start=1000,
|
||||
period_end=1500,
|
||||
)
|
||||
GenericParserRecord.objects.create(
|
||||
source=ParserLoadLog.Source.PROCUREMENTS_44FZ,
|
||||
load_batch=1,
|
||||
external_id="purchase-generic-001",
|
||||
inn=str(organization.mn_inn),
|
||||
ogrn=str(organization.mn_ogrn),
|
||||
title="Поставка generic-оборудования",
|
||||
record_date="15.02.2026",
|
||||
amount="2500000.00",
|
||||
status="published",
|
||||
payload={
|
||||
"law": "44-ФЗ",
|
||||
"registry_number": "purchase-generic-001",
|
||||
"Окончание подачи заявок": "20.02.2026",
|
||||
},
|
||||
registry_organization=organization,
|
||||
)
|
||||
GenericParserRecord.objects.create(
|
||||
source=ParserLoadLog.Source.ARBITRATION,
|
||||
load_batch=1,
|
||||
@@ -198,9 +260,12 @@ class StateCorpExchangeServiceTest(TestCase):
|
||||
|
||||
package = StateCorpExchangeService.build_package(actual_date="2026-03-15")
|
||||
self.assertEqual(package.payload_counts["organizations"], 1)
|
||||
self.assertEqual(package.payload_counts["industrial_certificates"], 1)
|
||||
self.assertEqual(package.payload_counts["manufacturers"], 1)
|
||||
self.assertEqual(package.payload_counts["industrial_products"], 1)
|
||||
self.assertEqual(package.payload_counts["prosecutor_checks"], 1)
|
||||
self.assertEqual(package.payload_counts["public_procurements"], 1)
|
||||
self.assertEqual(package.payload_counts["public_procurements"], 2)
|
||||
self.assertEqual(package.payload_counts["financial_reports"], 1)
|
||||
self.assertEqual(package.payload_counts["arbitration_cases"], 1)
|
||||
self.assertEqual(package.payload_counts["bankruptcy_procedures"], 1)
|
||||
self.assertEqual(package.payload_counts["defense_unreliable_suppliers"], 1)
|
||||
@@ -212,6 +277,14 @@ class StateCorpExchangeServiceTest(TestCase):
|
||||
self.assertEqual(payload["format"], StateCorpExchangeService.PAYLOAD_FORMAT)
|
||||
self.assertEqual(payload["manifest"]["source_system"], "mostovik")
|
||||
self.assertEqual(payload["data"]["organizations"][0]["inn"], "7707083893")
|
||||
self.assertEqual(
|
||||
payload["data"]["industrial_certificates"][0]["certificate_number"],
|
||||
"cert-001",
|
||||
)
|
||||
self.assertEqual(
|
||||
payload["data"]["manufacturers"][0]["full_legal_name"],
|
||||
"АО Альфа",
|
||||
)
|
||||
self.assertEqual(
|
||||
payload["data"]["industrial_products"][0]["registry_number"],
|
||||
"prod-001",
|
||||
@@ -224,6 +297,10 @@ class StateCorpExchangeServiceTest(TestCase):
|
||||
payload["data"]["public_procurements"][0]["purchase_number"],
|
||||
"purchase-001",
|
||||
)
|
||||
self.assertEqual(
|
||||
payload["data"]["financial_reports"][0]["lines"][0]["line_code"],
|
||||
"1600",
|
||||
)
|
||||
self.assertEqual(
|
||||
payload["data"]["arbitration_cases"][0]["case_number"],
|
||||
"А40-1/2026",
|
||||
|
||||
Reference in New Issue
Block a user