feat(parsers): filter source results by date
This commit is contained in:
@@ -8,6 +8,7 @@ import io
|
||||
import os
|
||||
import tempfile
|
||||
import zipfile
|
||||
from datetime import date
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
from apps.parsers.models import (
|
||||
@@ -480,6 +481,97 @@ class ParsersViewSetTest(APITestCase):
|
||||
self.assertEqual(response.data["data"][0]["id"], hh_record.id)
|
||||
self.assertEqual(response.data["data"][0]["source"], "hh")
|
||||
|
||||
def test_source_results_filter_and_sort_by_record_date(self):
|
||||
arbitration_older = GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source=ParserLoadLog.Source.ARBITRATION,
|
||||
external_id="arbitration-older",
|
||||
record_date="2024-01-15",
|
||||
)
|
||||
arbitration_newer = GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source=ParserLoadLog.Source.ARBITRATION,
|
||||
external_id="arbitration-newer",
|
||||
record_date="2024-03-15",
|
||||
)
|
||||
vacancy_older = GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source="hh",
|
||||
external_id="hh-older",
|
||||
record_date="2024-02-01",
|
||||
payload={"vacancy_source": "hh"},
|
||||
)
|
||||
vacancy_newer = GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source="hh",
|
||||
external_id="hh-newer",
|
||||
record_date="2024-04-01",
|
||||
payload={"vacancy_source": "hh"},
|
||||
)
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
arbitration_response = self.client.get(
|
||||
"/api/v1/arbitration/cases/",
|
||||
{"date_from": "2024-02-01", "ordering": "-record_date"},
|
||||
)
|
||||
vacancy_response = self.client.get(
|
||||
"/api/v1/trudvsem/vacancies/",
|
||||
{"date_to": "2024-02-15", "ordering": "record_date"},
|
||||
)
|
||||
|
||||
self.assertEqual(arbitration_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in arbitration_response.data["data"]],
|
||||
[arbitration_newer.id],
|
||||
)
|
||||
self.assertNotIn(
|
||||
arbitration_older.id,
|
||||
[item["id"] for item in arbitration_response.data["data"]],
|
||||
)
|
||||
self.assertEqual(vacancy_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in vacancy_response.data["data"]],
|
||||
[vacancy_older.id],
|
||||
)
|
||||
self.assertNotIn(
|
||||
vacancy_newer.id,
|
||||
[item["id"] for item in vacancy_response.data["data"]],
|
||||
)
|
||||
|
||||
def test_inspection_source_results_filter_and_sort_by_record_date(self):
|
||||
older = InspectionRecordFactory(
|
||||
start_date="2024-01-10",
|
||||
start_date_normalized=date(2024, 1, 10),
|
||||
)
|
||||
newer = InspectionRecordFactory(
|
||||
start_date="2024-03-10",
|
||||
start_date_normalized=date(2024, 3, 10),
|
||||
)
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
response = self.client.get(
|
||||
"/api/v1/proverki/",
|
||||
{"date_from": "2024-02-01", "ordering": "-start_date_normalized"},
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in response.data["data"]],
|
||||
[newer.id],
|
||||
)
|
||||
self.assertNotIn(older.id, [item["id"] for item in response.data["data"]])
|
||||
|
||||
source_response = self.client.get(
|
||||
"/api/v1/parsers/results/inspections/",
|
||||
{"date_from": "2024-02-01", "ordering": "-record_date"},
|
||||
)
|
||||
|
||||
self.assertEqual(source_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in source_response.data["data"]],
|
||||
[newer.id],
|
||||
)
|
||||
|
||||
def test_parser_results_v1_enrich_missing_organization_fields_without_contract_change(
|
||||
self,
|
||||
):
|
||||
|
||||
Reference in New Issue
Block a user