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

@@ -31,11 +31,12 @@ from django.contrib.messages.storage.fallback import FallbackStorage
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import RequestFactory, TestCase, override_settings
from django.urls import reverse
from openpyxl import Workbook
from organizations.models import (
Organization,
OrganizationSourceFinancialLine,
OrganizationSourceRecord,
)
from openpyxl import Workbook
from tests.apps.parsers.factories import (
IndustrialCertificateRecordFactory,
@@ -78,8 +79,13 @@ def _build_fns_excel_bytes() -> bytes:
def _build_fns_zip_upload() -> SimpleUploadedFile:
buffer = io.BytesIO()
with zipfile.ZipFile(buffer, "w", compression=zipfile.ZIP_DEFLATED) as archive:
ogrn = _digits(13)
Organization.objects.create(
name=f"ФНС {ogrn}",
ogrn=ogrn,
)
archive.writestr(
f"fin_{_digits(5)}_{_digits(13)}.xlsx",
f"fin_{_digits(5)}_{ogrn}.xlsx",
_build_fns_excel_bytes(),
)
archive.writestr("ignored.txt", b"invalid")
@@ -91,8 +97,13 @@ def _build_fns_zip_upload() -> SimpleUploadedFile:
def _build_fns_excel_upload() -> SimpleUploadedFile:
ogrn = _digits(13)
Organization.objects.create(
name=f"ФНС {ogrn}",
ogrn=ogrn,
)
return SimpleUploadedFile(
f"fin_{_digits(5)}_{_digits(13)}.xlsx",
f"fin_{_digits(5)}_{ogrn}.xlsx",
_build_fns_excel_bytes(),
content_type=(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
@@ -366,7 +377,7 @@ class ParsersAdminTest(TestCase):
self.assertEqual(admin.lines_count(report), 1)
self.assertIn("span", str(admin.status_badge(report)))
self.assertIn("registry_organization", admin.list_display)
self.assertIn("registry_organization__pn_name", admin.search_fields)
self.assertIn("registry_organization__name", admin.search_fields)
route_names = [route.name for route in admin.get_urls()]
self.assertIn("parsers_financialreport_upload_excel", route_names)
self.assertIn("parsers_financialreport_upload_zip", route_names)