From 661e857f53d270cb83ef1d22d75592f1b65a3fd1 Mon Sep 17 00:00:00 2001 From: Aleksandr Meshchriakov Date: Sun, 9 Aug 2026 13:29:48 +0200 Subject: [PATCH] fix: keep test finance exchange identities stable --- src/organizations/test_companies.py | 4 ++-- .../test_test_companies_commands.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/organizations/test_companies.py b/src/organizations/test_companies.py index a31bc98..787589f 100644 --- a/src/organizations/test_companies.py +++ b/src/organizations/test_companies.py @@ -293,12 +293,12 @@ class TestCompanyDatasetService: if source == ParserLoadLog.Source.FNS_REPORTS: legacy_record, _ = FinancialReport.objects.update_or_create( - external_id=f"test-company-{index:02d}", + file_hash=payload["file_hash"], defaults={ **common, + "external_id": external_id, "ogrn": organization.ogrn, "file_name": payload["file_name"], - "file_hash": payload["file_hash"], "status": FinancialReport.Status.SUCCESS, "source": FinancialReport.SourceType.API, }, diff --git a/tests/apps/organizations/test_test_companies_commands.py b/tests/apps/organizations/test_test_companies_commands.py index 2158f70..7ff37cf 100644 --- a/tests/apps/organizations/test_test_companies_commands.py +++ b/tests/apps/organizations/test_test_companies_commands.py @@ -24,6 +24,7 @@ from organizations.models import ( OrganizationSourceRecord, SourceGroup, ) +from organizations.test_companies import TEST_RECORD_PREFIX TEST_EXCHANGE_TOKEN = "test-exchange-token" # noqa: S105 @@ -104,6 +105,13 @@ class TestCompaniesCommandsTest(TestCase): self.assertEqual(InspectionRecord.objects.count(), 20) self.assertEqual(ProcurementRecord.objects.count(), 20) self.assertEqual(FinancialReport.objects.count(), 20) + self.assertEqual( + set(FinancialReport.objects.values_list("external_id", flat=True)), + { + f"{TEST_RECORD_PREFIX}:{index:02d}:{ParserLoadLog.Source.FNS_REPORTS}" + for index in range(1, 21) + }, + ) self.assertEqual(FinancialReportLine.objects.count(), 20 * 4) self.assertEqual( set(FinancialReportLine.objects.values_list("year", flat=True)), @@ -129,6 +137,11 @@ class TestCompaniesCommandsTest(TestCase): record.title = "Устаревшие тестовые данные" record.payload = {"stale": True} record.save(update_fields=["title", "payload"]) + financial_report = FinancialReport.objects.get( + registry_organization=first_company + ) + financial_report.external_id = "test-company-01" + financial_report.save(update_fields=["external_id"]) call_command("create_test_companies", stdout=StringIO()) @@ -145,6 +158,11 @@ class TestCompaniesCommandsTest(TestCase): record.refresh_from_db() self.assertNotEqual(record.title, "Устаревшие тестовые данные") self.assertIn("registration_number", record.payload) + financial_report.refresh_from_db() + self.assertEqual( + financial_report.external_id, + f"{TEST_RECORD_PREFIX}:01:{ParserLoadLog.Source.FNS_REPORTS}", + ) self.assertEqual(OrganizationSourceRecord.objects.count(), 20 * 15) @override_settings(STATE_CORP_EXCHANGE_TOKEN=TEST_EXCHANGE_TOKEN)