feat(dashboard): improve parser API checks
All checks were successful
CI/CD Pipeline / Quality Gate (push) Successful in 21s
CI/CD Pipeline / Build and Push Images (push) Successful in 6s
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:
2026-04-29 11:47:45 +02:00
parent d6de9a27b3
commit be7af18c36
7 changed files with 1548 additions and 121 deletions

View File

@@ -94,6 +94,7 @@ class ParsersViewSetTest(APITestCase):
def test_manufacturers_list_and_retrieve(self):
record = ManufacturerRecordFactory()
second_record = ManufacturerRecordFactory()
self.client.force_authenticate(self.user)
url = reverse("api_v1:minpromtorg:manufacturers-list")
response = self.client.get(url)
@@ -102,6 +103,29 @@ class ParsersViewSetTest(APITestCase):
reverse("api_v1:minpromtorg:manufacturers-detail", args=[record.id])
)
self.assertEqual(detail.status_code, status.HTTP_200_OK)
first_page_response = self.client.get(
"/api/v1/parsers/results/manufactures/",
{"page": 1, "page_size": 1},
)
second_page_response = self.client.get(
"/api/v1/parsers/results/manufactures/",
{"page": 2, "page_size": 1},
)
self.assertEqual(first_page_response.status_code, status.HTTP_200_OK)
self.assertEqual(second_page_response.status_code, status.HTTP_200_OK)
self.assertEqual(first_page_response.data["meta"]["pagination"]["count"], 2)
self.assertEqual(second_page_response.data["meta"]["pagination"]["count"], 2)
self.assertNotEqual(
first_page_response.data["data"][0]["id"],
second_page_response.data["data"][0]["id"],
)
self.assertEqual(
{
first_page_response.data["data"][0]["id"],
second_page_response.data["data"][0]["id"],
},
{record.id, second_record.id},
)
def test_products_list_and_retrieve(self):
record = IndustrialProductRecordFactory()
@@ -211,15 +235,15 @@ class ParsersViewSetTest(APITestCase):
sources = {item["key"]: item for item in payload["sources"]}
self.assertEqual(
sources["procurements_44fz"]["result_list_url"],
"/api/v1/eis/procurements-44fz/",
"/api/v1/parsers/results/procurements_44fz/",
)
self.assertEqual(
sources["procurements_223fz"]["result_list_url"],
"/api/v1/eis/procurements-223fz/",
"/api/v1/parsers/results/procurements_223fz/",
)
self.assertEqual(
sources["contracts"]["result_list_url"],
"/api/v1/eis/contracts/",
"/api/v1/parsers/results/contracts/",
)
self.assertEqual(
payload["source_counts"][ParserLoadLog.Source.PROCUREMENTS_44FZ],
@@ -269,6 +293,11 @@ class ParsersViewSetTest(APITestCase):
)
self.assertEqual(detail.status_code, status.HTTP_200_OK)
self.assertIn("lines", detail.data)
unified_response = self.client.get("/api/v1/parsers/results/fns_financial/")
self.assertEqual(unified_response.status_code, status.HTTP_200_OK)
self.assertEqual(unified_response.data["meta"]["pagination"]["count"], 1)
self.assertEqual(unified_response.data["data"][0]["id"], report.id)
self.assertEqual(unified_response.data["data"][0]["title"], report.file_name)
def test_system_logs_admin_only(self):
log = ParserLoadLogFactory()