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

@@ -10,10 +10,14 @@ from unittest.mock import patch
from apps.core.models import BackgroundJob
from apps.parsers.fns_upload import FNSUploadService
from apps.parsers.models import FinancialReport, FinancialReportLine
from apps.parsers.models import FinancialReport
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import override_settings
from django.urls import reverse
from organizations.models import (
OrganizationSourceFinancialLine,
OrganizationSourceRecord,
)
from openpyxl import Workbook
from rest_framework import status
from rest_framework.test import APITestCase
@@ -93,11 +97,16 @@ class FNSUploadIntegrationTest(APITestCase):
self.assertEqual(response.data["queued"], 1)
self.assertEqual(response.data["skipped"], 0)
self.assertEqual(FinancialReport.objects.count(), 1)
report = FinancialReport.objects.first()
self.assertEqual(FinancialReport.objects.count(), 0)
self.assertEqual(OrganizationSourceRecord.objects.count(), 1)
report = OrganizationSourceRecord.objects.first()
self.assertEqual(report.external_id, external_id)
self.assertEqual(report.ogrn, ogrn)
self.assertTrue(FinancialReportLine.objects.filter(report=report).exists())
self.assertTrue(
OrganizationSourceFinancialLine.objects.filter(
source_record=report
).exists()
)
processed_path = os.path.join(processed_dir, filename)
self.assertTrue(os.path.exists(processed_path))
@@ -145,7 +154,8 @@ class FNSUploadIntegrationTest(APITestCase):
self.assertEqual(second.data["queued"], 0)
self.assertEqual(second.data["skipped"], 1)
self.assertEqual(FinancialReport.objects.count(), 1)
self.assertEqual(FinancialReport.objects.count(), 0)
self.assertEqual(OrganizationSourceRecord.objects.count(), 1)
self.assertFalse(os.path.exists(os.path.join(watch_dir, filename)))
self.assertFalse(
os.path.exists(os.path.join(watch_dir, f"{filename}.lock"))
@@ -521,8 +531,9 @@ class FNSUploadIntegrationTest(APITestCase):
self.assertEqual(result.queued, 2)
self.assertEqual(result.skipped, 0)
self.assertEqual(result.invalid, 2)
self.assertEqual(FinancialReport.objects.count(), 2)
self.assertEqual(FinancialReportLine.objects.count(), 2)
self.assertEqual(FinancialReport.objects.count(), 0)
self.assertEqual(OrganizationSourceRecord.objects.count(), 2)
self.assertEqual(OrganizationSourceFinancialLine.objects.count(), 2)
def test_queue_zip_archive_rejects_bad_zip(self):
archive_upload = SimpleUploadedFile(