refactor(parsers): перенести тесты в ROOT_DIR/tests и синхронизировать контракты задач

- перенесены тесты parsers из src/apps/parsers/tests в tests/apps/parsers

- обновлены тесты задач под текущее поведение Celery (ошибки пробрасываются исключениями)

- убрана зависимость тестов от внешнего брокера через локальные eager-вызовы

- добавлены/уточнены фабрики и импорты для единой структуры тестов

- обновлены README и CHANGELOG с новым правилом размещения тестов и запуском
This commit is contained in:
2026-03-04 15:35:50 +01:00
parent 0738c53040
commit 052389d921
18 changed files with 657 additions and 284 deletions

View File

@@ -32,6 +32,7 @@ from apps.parsers.serializers import (
)
from apps.parsers.tasks import process_fns_file
from django.conf import settings
from django.db.models import Count
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema
from rest_framework import status
@@ -68,7 +69,13 @@ class IndustrialCertificateViewSet(ReadOnlyModelViewSet):
queryset = IndustrialCertificateRecord.objects.all().order_by("-created_at")
serializer_class = IndustrialCertificateSerializer
permission_classes = [IsAuthenticated]
filterset_fields = ["inn", "ogrn", "certificate_number", "load_batch"]
filterset_fields = [
"inn",
"ogrn",
"certificate_number",
"load_batch",
"registry_organization",
]
search_fields = ["organisation_name", "certificate_number", "inn", "ogrn"]
@swagger_auto_schema(
@@ -116,7 +123,7 @@ class ManufacturerViewSet(ReadOnlyModelViewSet):
queryset = ManufacturerRecord.objects.all().order_by("-created_at")
serializer_class = ManufacturerSerializer
permission_classes = [IsAuthenticated]
filterset_fields = ["inn", "ogrn", "load_batch"]
filterset_fields = ["inn", "ogrn", "load_batch", "registry_organization"]
search_fields = ["full_legal_name", "inn", "ogrn", "address"]
@swagger_auto_schema(
@@ -173,6 +180,7 @@ class InspectionViewSet(ReadOnlyModelViewSet):
"data_year",
"data_month",
"load_batch",
"registry_organization",
]
search_fields = [
"organisation_name",
@@ -240,6 +248,7 @@ class ProcurementViewSet(ReadOnlyModelViewSet):
"data_year",
"data_month",
"load_batch",
"registry_organization",
]
search_fields = [
"purchase_name",
@@ -294,9 +303,18 @@ class FinancialReportViewSet(ReadOnlyModelViewSet):
Только чтение - добавление через загрузку файлов.
"""
queryset = FinancialReport.objects.all().order_by("-created_at")
queryset = FinancialReport.objects.annotate(lines_count=Count("lines")).order_by(
"-created_at"
)
permission_classes = [IsAuthenticated]
filterset_fields = ["ogrn", "external_id", "status", "source", "load_batch"]
filterset_fields = [
"ogrn",
"external_id",
"status",
"source",
"load_batch",
"registry_organization",
]
search_fields = ["ogrn", "external_id", "file_name"]
def get_serializer_class(self):