feat: use authoritative organization directory
This commit is contained in:
@@ -14,11 +14,12 @@ 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 openpyxl import Workbook
|
||||
from organizations.models import (
|
||||
Organization,
|
||||
OrganizationSourceFinancialLine,
|
||||
OrganizationSourceRecord,
|
||||
)
|
||||
from openpyxl import Workbook
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
@@ -53,6 +54,13 @@ def _build_fns_zip_bytes(file_map: dict[str, bytes]) -> bytes:
|
||||
return buffer.getvalue()
|
||||
|
||||
|
||||
def _ensure_directory_organization(*, ogrn: str) -> Organization:
|
||||
return Organization.objects.create(
|
||||
name=f"ФНС {ogrn}",
|
||||
ogrn=ogrn,
|
||||
)
|
||||
|
||||
|
||||
class FNSUploadIntegrationTest(APITestCase):
|
||||
"""Tests real upload + processing of FNS files."""
|
||||
|
||||
@@ -73,6 +81,7 @@ class FNSUploadIntegrationTest(APITestCase):
|
||||
content = _build_fns_excel_bytes()
|
||||
external_id = _digits(5)
|
||||
ogrn = _digits(13)
|
||||
_ensure_directory_organization(ogrn=ogrn)
|
||||
filename = f"fin_{external_id}_{ogrn}.xlsx"
|
||||
upload = SimpleUploadedFile(
|
||||
filename,
|
||||
@@ -119,6 +128,7 @@ class FNSUploadIntegrationTest(APITestCase):
|
||||
content = _build_fns_excel_bytes()
|
||||
external_id = _digits(3)
|
||||
ogrn = _digits(13)
|
||||
_ensure_directory_organization(ogrn=ogrn)
|
||||
filename = f"fin_{external_id}_{ogrn}.xlsx"
|
||||
upload1 = SimpleUploadedFile(
|
||||
filename,
|
||||
@@ -165,6 +175,7 @@ class FNSUploadIntegrationTest(APITestCase):
|
||||
content = _build_fns_excel_bytes()
|
||||
external_id = _digits(5)
|
||||
ogrn = _digits(13)
|
||||
_ensure_directory_organization(ogrn=ogrn)
|
||||
filename = f"fin_{external_id}_{ogrn}.xlsx"
|
||||
upload = SimpleUploadedFile(
|
||||
filename,
|
||||
@@ -230,6 +241,7 @@ class FNSUploadIntegrationTest(APITestCase):
|
||||
content = _build_fns_excel_bytes()
|
||||
external_id = _digits(5)
|
||||
ogrn = _digits(13)
|
||||
_ensure_directory_organization(ogrn=ogrn)
|
||||
filename = f"fin_{external_id}_{ogrn}.xlsx"
|
||||
upload = SimpleUploadedFile(
|
||||
filename,
|
||||
@@ -337,6 +349,7 @@ class FNSUploadIntegrationTest(APITestCase):
|
||||
content = _build_fns_excel_bytes()
|
||||
external_id = _digits(5)
|
||||
ogrn = _digits(13)
|
||||
_ensure_directory_organization(ogrn=ogrn)
|
||||
filename = f"fin_{external_id}_{ogrn}.xlsx"
|
||||
upload = SimpleUploadedFile(
|
||||
filename,
|
||||
@@ -370,6 +383,7 @@ class FNSUploadIntegrationTest(APITestCase):
|
||||
content = _build_fns_excel_bytes()
|
||||
external_id = _digits(5)
|
||||
ogrn = _digits(13)
|
||||
_ensure_directory_organization(ogrn=ogrn)
|
||||
filename = f"fin_{external_id}_{ogrn}.xlsx"
|
||||
upload = SimpleUploadedFile(
|
||||
filename,
|
||||
@@ -500,8 +514,12 @@ class FNSUploadIntegrationTest(APITestCase):
|
||||
)
|
||||
|
||||
def test_queue_zip_archive_processes_valid_files_and_skips_invalid(self):
|
||||
first_name = f"fin_{_digits(5)}_{_digits(13)}.xlsx"
|
||||
second_name = f"fin_{_digits(5)}_{_digits(13)}.xlsx"
|
||||
first_ogrn = _digits(13)
|
||||
second_ogrn = _digits(13)
|
||||
_ensure_directory_organization(ogrn=first_ogrn)
|
||||
_ensure_directory_organization(ogrn=second_ogrn)
|
||||
first_name = f"fin_{_digits(5)}_{first_ogrn}.xlsx"
|
||||
second_name = f"fin_{_digits(5)}_{second_ogrn}.xlsx"
|
||||
zip_content = _build_fns_zip_bytes(
|
||||
{
|
||||
first_name: _build_fns_excel_bytes(),
|
||||
|
||||
Reference in New Issue
Block a user