feat: migrate parser data to source records
Some checks failed
CI/CD Pipeline / Quality Gate (push) Failing after 14s
CI/CD Pipeline / Build and Push Images (push) Has been skipped
CI/CD Pipeline / Deploy Dev in Dokploy (push) Has been skipped
CI/CD Pipeline / Internal Notify (push) Successful in 0s

This commit is contained in:
2026-05-19 20:21:31 +02:00
parent 1c7c7238be
commit b8a18d6da4
46 changed files with 2689 additions and 6179 deletions

View File

@@ -101,6 +101,59 @@ class OrganizationSourceIngestionServiceTest(TestCase):
self.assertEqual(record.payload["version"], 2)
self.assertEqual(record.load_batch, 44)
def test_save_records_does_not_attach_identified_record_to_name_only_org(self):
name_only = Organization.objects.create(name="Acme Security")
result = OrganizationSourceIngestionService.save_records(
source=ParserLoadLog.Source.FSTEC,
load_batch=45,
records=[
SourceRecordInput(
external_id="fstec-5066",
title="Weblock",
organization_name="Acme Security",
inn="7713497980",
ogrn="1237700253306",
payload={"identity_enrichment": {"status": "matched"}},
)
],
)
self.assertEqual(result.created_records, 1)
organization = Organization.objects.get(inn="7713497980")
self.assertNotEqual(organization.uid, name_only.uid)
self.assertEqual(organization.ogrn, "1237700253306")
record = OrganizationSourceRecord.objects.get(external_id="fstec-5066")
self.assertEqual(record.extension.organization, organization)
self.assertFalse(name_only.source_extensions.exists())
def test_save_records_fills_missing_identity_on_resolved_organization(self):
partial = Organization.objects.create(
name="1237700253306",
ogrn="1237700253306",
)
OrganizationSourceIngestionService.save_records(
source=ParserLoadLog.Source.FSTEC,
load_batch=46,
records=[
SourceRecordInput(
external_id="fstec-5067",
title="Weblock",
organization_name="Acme Security",
inn="7713497980",
ogrn="1237700253306",
)
],
)
partial.refresh_from_db()
self.assertEqual(partial.inn, "7713497980")
self.assertEqual(partial.ogrn, "1237700253306")
self.assertEqual(partial.name, "Acme Security")
record = OrganizationSourceRecord.objects.get(external_id="fstec-5067")
self.assertEqual(record.extension.organization, partial)
def test_save_financial_report_writes_financial_lines_without_legacy_report(self):
result = OrganizationSourceIngestionService.save_records(
source=ParserLoadLog.Source.FNS_REPORTS,