feat: migrate parser data to source records
This commit is contained in:
@@ -284,6 +284,44 @@ class OrganizationSourceExtensionsApiV2Test(APITestCase):
|
||||
self.assertEqual(response_organization["kpp"], "180001001")
|
||||
self.assertEqual(response_organization["ogrn"], organization.ogrn)
|
||||
|
||||
def test_source_record_organization_keeps_canonical_inn_with_leading_zero(self):
|
||||
organization = Organization.objects.create(
|
||||
name='ООО "Башнефть-Добыча"',
|
||||
inn="0277106840",
|
||||
ogrn="1090280032699",
|
||||
)
|
||||
extension = PlannedInspectionExtension.objects.create(
|
||||
organization=organization,
|
||||
title="Плановые проверки Генпрокуратуры России",
|
||||
)
|
||||
OrganizationSourceRecord.objects.create(
|
||||
extension=extension,
|
||||
record_type="inspection",
|
||||
source="inspections",
|
||||
external_id="INSP-LEADING-ZERO-INN",
|
||||
title="Проверка организации с ведущим нулем",
|
||||
)
|
||||
registry_organization = RegistryOrganizationFactory(
|
||||
pn_name='ООО "Башнефть-Добыча"',
|
||||
mn_inn=277106840,
|
||||
mn_ogrn=int(organization.ogrn),
|
||||
in_kpp=27701001,
|
||||
)
|
||||
RegistryMembershipPeriodFactory(organization=registry_organization)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("api_v2:organizations:organization-source-records-list"),
|
||||
{
|
||||
"has_registry": "true",
|
||||
"source_group": "planned_inspections",
|
||||
},
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
response_organization = response.data["data"][0]["organization"]
|
||||
self.assertEqual(response_organization["inn"], "0277106840")
|
||||
self.assertEqual(response_organization["ogrn"], organization.ogrn)
|
||||
|
||||
def test_flat_source_records_searches_payload_values_displayed_in_tables(self):
|
||||
target = Organization.objects.create(
|
||||
name='ООО "Поиск по payload"',
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user