fix(parsers): align vacancy sources and procurement counters
This commit is contained in:
@@ -353,6 +353,54 @@ class ParsersViewSetTest(APITestCase):
|
||||
self.assertEqual(detail_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(detail_response.data["data"]["payload"], {"registry": "44fz"})
|
||||
|
||||
def test_vacancy_result_endpoint_uses_job_board_source_as_source(self):
|
||||
generic_record = GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source="hh",
|
||||
external_id="hh:123",
|
||||
title="HeadHunter vacancy",
|
||||
payload={"vacancy_source": "hh"},
|
||||
)
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
response = self.client.get("/api/v1/trudvsem/vacancies/")
|
||||
detail_response = self.client.get(
|
||||
f"/api/v1/trudvsem/vacancies/{generic_record.id}/"
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(detail_response.status_code, status.HTTP_200_OK)
|
||||
row = response.data["data"][0]
|
||||
detail = detail_response.data["data"]
|
||||
self.assertEqual(row["source"], "hh")
|
||||
self.assertEqual(row["vacancy_source"], "hh")
|
||||
self.assertEqual(detail["source"], "hh")
|
||||
self.assertEqual(detail["vacancy_source"], "hh")
|
||||
|
||||
def test_vacancy_result_endpoint_filters_by_job_board_source(self):
|
||||
hh_record = GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source="hh",
|
||||
external_id="hh:123",
|
||||
title="HeadHunter vacancy",
|
||||
payload={"vacancy_source": "hh"},
|
||||
)
|
||||
GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source="superjob",
|
||||
external_id="superjob:456",
|
||||
title="SuperJob vacancy",
|
||||
payload={"vacancy_source": "superjob"},
|
||||
)
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
response = self.client.get("/api/v1/trudvsem/vacancies/", {"source": "hh"})
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(response.data["meta"]["pagination"]["count"], 1)
|
||||
self.assertEqual(response.data["data"][0]["id"], hh_record.id)
|
||||
self.assertEqual(response.data["data"][0]["source"], "hh")
|
||||
|
||||
def test_parser_results_v1_enrich_missing_organization_fields_without_contract_change(
|
||||
self,
|
||||
):
|
||||
@@ -490,8 +538,12 @@ class ParsersViewSetTest(APITestCase):
|
||||
coverage = response.data["data"]["registry_data_coverage"]
|
||||
self.assertEqual(coverage["total_organizations"], 1)
|
||||
items = {item["source"]: item for item in coverage["items"]}
|
||||
self.assertEqual(items[ParserLoadLog.Source.FNS_REPORTS]["organizations_count"], 1)
|
||||
self.assertEqual(items[ParserLoadLog.Source.FNS_REPORTS]["coverage_percent"], 100)
|
||||
self.assertEqual(
|
||||
items[ParserLoadLog.Source.FNS_REPORTS]["organizations_count"], 1
|
||||
)
|
||||
self.assertEqual(
|
||||
items[ParserLoadLog.Source.FNS_REPORTS]["coverage_percent"], 100
|
||||
)
|
||||
self.assertNotIn(ParserLoadLog.Source.UNFAIR_SUPPLIERS, items)
|
||||
|
||||
def test_dashboard_data_exposes_registry_enrichment_analytics(self):
|
||||
@@ -559,15 +611,11 @@ class ParsersViewSetTest(APITestCase):
|
||||
item["source"]: item for item in analytics["source_coverage"]
|
||||
}
|
||||
self.assertEqual(
|
||||
source_coverage[ParserLoadLog.Source.FNS_REPORTS][
|
||||
"organizations_count"
|
||||
],
|
||||
source_coverage[ParserLoadLog.Source.FNS_REPORTS]["organizations_count"],
|
||||
1,
|
||||
)
|
||||
self.assertEqual(
|
||||
source_coverage[ParserLoadLog.Source.INDUSTRIAL][
|
||||
"organizations_count"
|
||||
],
|
||||
source_coverage[ParserLoadLog.Source.INDUSTRIAL]["organizations_count"],
|
||||
1,
|
||||
)
|
||||
self.assertNotIn(ParserLoadLog.Source.UNFAIR_SUPPLIERS, source_coverage)
|
||||
@@ -575,9 +623,7 @@ class ParsersViewSetTest(APITestCase):
|
||||
self.assertNotIn(ParserLoadLog.Source.INSPECTIONS, source_coverage)
|
||||
risk_signals = {item["source"]: item for item in analytics["risk_signals"]}
|
||||
self.assertEqual(
|
||||
risk_signals[ParserLoadLog.Source.UNFAIR_SUPPLIERS][
|
||||
"organizations_count"
|
||||
],
|
||||
risk_signals[ParserLoadLog.Source.UNFAIR_SUPPLIERS]["organizations_count"],
|
||||
1,
|
||||
)
|
||||
self.assertEqual(
|
||||
@@ -585,9 +631,7 @@ class ParsersViewSetTest(APITestCase):
|
||||
"critical",
|
||||
)
|
||||
self.assertEqual(
|
||||
risk_signals[ParserLoadLog.Source.FEDRESURS_BANKRUPTCY][
|
||||
"risk_severity"
|
||||
],
|
||||
risk_signals[ParserLoadLog.Source.FEDRESURS_BANKRUPTCY]["risk_severity"],
|
||||
"critical",
|
||||
)
|
||||
self.assertEqual(
|
||||
@@ -603,8 +647,7 @@ class ParsersViewSetTest(APITestCase):
|
||||
1,
|
||||
)
|
||||
matrix = {
|
||||
item["registry_id"]: item
|
||||
for item in analytics["registry_source_matrix"]
|
||||
item["registry_id"]: item for item in analytics["registry_source_matrix"]
|
||||
}
|
||||
rosatom_matrix = matrix[str(rosatom_membership.registry_id)]
|
||||
roscosmos_matrix = matrix[str(roscosmos_membership.registry_id)]
|
||||
|
||||
Reference in New Issue
Block a user