fix dashboard source result routes
All checks were successful
CI/CD Pipeline / Manual Action Help (push) Has been skipped
CI/CD Pipeline / Start Dev Containers in Dokploy (push) Has been skipped
CI/CD Pipeline / Drop and Recreate Dev Database (push) Has been skipped
CI/CD Pipeline / Quality Gate (push) Successful in 53s
CI/CD Pipeline / Build and Push Images (push) Successful in 3m28s
CI/CD Pipeline / Internal Notify (push) Successful in 1s
CI/CD Pipeline / Deploy Dev in Dokploy (push) Successful in 1s
All checks were successful
CI/CD Pipeline / Manual Action Help (push) Has been skipped
CI/CD Pipeline / Start Dev Containers in Dokploy (push) Has been skipped
CI/CD Pipeline / Drop and Recreate Dev Database (push) Has been skipped
CI/CD Pipeline / Quality Gate (push) Successful in 53s
CI/CD Pipeline / Build and Push Images (push) Successful in 3m28s
CI/CD Pipeline / Internal Notify (push) Successful in 1s
CI/CD Pipeline / Deploy Dev in Dokploy (push) Successful in 1s
This commit is contained in:
@@ -7,7 +7,13 @@ import os
|
||||
import tempfile
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
from apps.parsers.models import FinancialReport, FinancialReportLine, ProcurementRecord
|
||||
from apps.parsers.models import (
|
||||
FinancialReport,
|
||||
FinancialReportLine,
|
||||
GenericParserRecord,
|
||||
ParserLoadLog,
|
||||
ProcurementRecord,
|
||||
)
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
from django.urls import reverse
|
||||
from openpyxl import Workbook
|
||||
@@ -121,6 +127,36 @@ class ParsersViewSetTest(APITestCase):
|
||||
)
|
||||
self.assertEqual(detail.status_code, status.HTTP_200_OK)
|
||||
|
||||
def test_eis_result_endpoint_uses_generic_records_without_breaking_old_zakupki_api(
|
||||
self,
|
||||
):
|
||||
old_record = _create_procurement_record()
|
||||
generic_record = GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source=ParserLoadLog.Source.PROCUREMENTS_44FZ,
|
||||
external_id="eis-44fz-1",
|
||||
inn=_digits(10),
|
||||
organisation_name="EIS Customer",
|
||||
title="EIS 44-FZ notice",
|
||||
status="published",
|
||||
payload={"registry": "44fz"},
|
||||
)
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
old_response = self.client.get(reverse("api_v1:zakupki:procurements-list"))
|
||||
new_response = self.client.get("/api/v1/eis/procurements-44fz/")
|
||||
detail_response = self.client.get(
|
||||
f"/api/v1/eis/procurements-44fz/{generic_record.id}/"
|
||||
)
|
||||
|
||||
self.assertEqual(old_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(old_response.data["data"][0]["id"], old_record.id)
|
||||
self.assertEqual(new_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(new_response.data["meta"]["pagination"]["count"], 1)
|
||||
self.assertEqual(new_response.data["data"][0]["id"], generic_record.id)
|
||||
self.assertEqual(detail_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(detail_response.data["data"]["payload"], {"registry": "44fz"})
|
||||
|
||||
def test_dashboard_data_exposes_source_groups_for_page(self):
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
@@ -133,6 +169,19 @@ class ParsersViewSetTest(APITestCase):
|
||||
self.assertIn("uploads", payload["groups"])
|
||||
self.assertEqual(payload["api_sources"], payload["groups"]["api"])
|
||||
self.assertEqual(payload["file_sources"], payload["groups"]["uploads"])
|
||||
sources = {item["key"]: item for item in payload["sources"]}
|
||||
self.assertEqual(
|
||||
sources["procurements_44fz"]["result_list_url"],
|
||||
"/api/v1/eis/procurements-44fz/",
|
||||
)
|
||||
self.assertEqual(
|
||||
sources["procurements_223fz"]["result_list_url"],
|
||||
"/api/v1/eis/procurements-223fz/",
|
||||
)
|
||||
self.assertEqual(
|
||||
sources["contracts"]["result_list_url"],
|
||||
"/api/v1/eis/contracts/",
|
||||
)
|
||||
|
||||
def test_financial_reports_list_and_retrieve(self):
|
||||
report = FinancialReport.objects.create(
|
||||
|
||||
Reference in New Issue
Block a user