feat: use authoritative organization directory
Some checks failed
CI/CD Pipeline / Quality Gate (push) Failing after 9s
CI/CD Pipeline / Build and Push Images (push) Has been skipped
CI/CD Pipeline / Deploy Dev via Compose (push) Has been skipped
CI/CD Pipeline / Internal Notify (push) Successful in 0s

This commit is contained in:
2026-06-07 16:04:43 +02:00
parent 79f0f8ebf7
commit 6ba8fa8d88
41 changed files with 2781 additions and 1058 deletions

View File

@@ -23,9 +23,6 @@ from tests.apps.parsers.factories import (
InspectionRecordFactory,
ManufacturerRecordFactory,
)
from tests.apps.registers.factories import (
OrganizationFactory as RegistryOrganizationFactory,
)
class OrganizationSourceBackfillServiceTest(TestCase):
@@ -79,17 +76,13 @@ class OrganizationSourceBackfillServiceTest(TestCase):
inn="7707083815",
ogrn="1027700132015",
)
registry_organization = RegistryOrganizationFactory(
mn_inn=int(organization.inn),
mn_ogrn=int(organization.ogrn),
)
InspectionRecordFactory(
load_batch=78,
inn=organization.inn,
ogrn=organization.ogrn,
organisation_name=organization.name,
registration_number="INSP-FK",
registry_organization=registry_organization,
registry_organization=organization,
)
OrganizationSourceBackfillService.backfill(
@@ -98,7 +91,7 @@ class OrganizationSourceBackfillServiceTest(TestCase):
)
record = OrganizationSourceRecord.objects.get(external_id="INSP-FK")
self.assertEqual(record.payload["registry_organization"], registry_organization.pk)
self.assertEqual(record.payload["registry_organization"], str(organization.pk))
def test_backfills_financial_report_lines(self):
organization = Organization.objects.create(
@@ -169,7 +162,7 @@ class OrganizationSourceBackfillServiceTest(TestCase):
self.assertEqual(record.external_id, generic_record.external_id)
self.assertEqual(record.payload["reason"], "test")
def test_backfill_drops_invalid_identity_values_when_creating_organization(self):
def test_backfill_skips_invalid_identity_without_directory_organization(self):
manufacturer = ManufacturerRecordFactory(
load_batch=100,
full_legal_name='ИП "Грязный ИНН"',
@@ -183,14 +176,17 @@ class OrganizationSourceBackfillServiceTest(TestCase):
)
self.assertEqual(result.scanned, 1)
self.assertEqual(result.created_organizations, 1)
self.assertEqual(result.created_records, 1)
self.assertEqual(result.unresolved, 0)
organization = Organization.objects.get(name=manufacturer.full_legal_name)
self.assertEqual(organization.inn, "")
self.assertEqual(organization.ogrn, manufacturer.ogrn)
record = OrganizationSourceRecord.objects.get(legacy_pk=str(manufacturer.pk))
self.assertEqual(record.payload["inn"], "396440000001000")
self.assertEqual(result.created_organizations, 0)
self.assertEqual(result.created_records, 0)
self.assertEqual(result.unresolved, 1)
self.assertFalse(
Organization.objects.filter(name=manufacturer.full_legal_name).exists()
)
self.assertFalse(
OrganizationSourceRecord.objects.filter(
legacy_pk=str(manufacturer.pk)
).exists()
)
def test_management_command_runs_source_backfill(self):
organization = Organization.objects.create(