Add organization stats endpoint
This commit is contained in:
@@ -697,6 +697,112 @@ class ParsersViewSetTest(APITestCase):
|
||||
self.assertEqual(unified_response.data["data"][0]["id"], report.id)
|
||||
self.assertEqual(unified_response.data["data"][0]["title"], report.file_name)
|
||||
|
||||
def test_fns_financial_results_searches_and_orders_by_registry_organization(self):
|
||||
alpha_org = RegisterOrganizationFactory(
|
||||
pn_name='alpha "ФНС"',
|
||||
mn_ogrn=1027700000001,
|
||||
mn_inn=7701000001,
|
||||
)
|
||||
beta_org = RegisterOrganizationFactory(
|
||||
pn_name='Beta "ФНС"',
|
||||
mn_ogrn=1027700000002,
|
||||
mn_inn=7701000002,
|
||||
)
|
||||
alpha_report = FinancialReport.objects.create(
|
||||
external_id="fns-alpha",
|
||||
ogrn=str(alpha_org.mn_ogrn),
|
||||
registry_organization=alpha_org,
|
||||
file_name=f"fin_fns-alpha_{alpha_org.mn_ogrn}.xlsx",
|
||||
file_hash=fake.sha256(raw_output=False),
|
||||
load_batch=1,
|
||||
status=FinancialReport.Status.SUCCESS,
|
||||
source=FinancialReport.SourceType.API,
|
||||
)
|
||||
beta_report = FinancialReport.objects.create(
|
||||
external_id="fns-beta",
|
||||
ogrn=str(beta_org.mn_ogrn),
|
||||
registry_organization=beta_org,
|
||||
file_name=f"fin_fns-beta_{beta_org.mn_ogrn}.xlsx",
|
||||
file_hash=fake.sha256(raw_output=False),
|
||||
load_batch=1,
|
||||
status=FinancialReport.Status.SUCCESS,
|
||||
source=FinancialReport.SourceType.API,
|
||||
)
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
name_response = self.client.get(
|
||||
"/api/v1/parsers/results/fns_financial/",
|
||||
{"search": "alpha"},
|
||||
)
|
||||
inn_response = self.client.get(
|
||||
"/api/v1/parsers/results/fns_financial/",
|
||||
{"search": str(beta_org.mn_inn)},
|
||||
)
|
||||
ordered_response = self.client.get(
|
||||
"/api/v1/parsers/results/fns_financial/",
|
||||
{"ordering": "organisation_name"},
|
||||
)
|
||||
|
||||
self.assertEqual(name_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in name_response.data["data"]],
|
||||
[alpha_report.id],
|
||||
)
|
||||
self.assertEqual(
|
||||
name_response.data["data"][0]["organisation_name"],
|
||||
alpha_org.pn_name,
|
||||
)
|
||||
self.assertEqual(name_response.data["data"][0]["inn"], str(alpha_org.mn_inn))
|
||||
self.assertEqual(inn_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in inn_response.data["data"]],
|
||||
[beta_report.id],
|
||||
)
|
||||
self.assertEqual(ordered_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in ordered_response.data["data"]],
|
||||
[alpha_report.id, beta_report.id],
|
||||
)
|
||||
|
||||
def test_eis_results_order_text_case_insensitively_and_by_amount(self):
|
||||
low_amount = GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source=ParserLoadLog.Source.PROCUREMENTS_44FZ,
|
||||
external_id="amount-low",
|
||||
organisation_name="alpha customer",
|
||||
title="Low amount",
|
||||
amount="10.00",
|
||||
)
|
||||
high_amount = GenericParserRecord.objects.create(
|
||||
load_batch=1,
|
||||
source=ParserLoadLog.Source.PROCUREMENTS_44FZ,
|
||||
external_id="amount-high",
|
||||
organisation_name="Beta customer",
|
||||
title="High amount",
|
||||
amount="20.00",
|
||||
)
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
amount_response = self.client.get(
|
||||
"/api/v1/eis/procurements-44fz/",
|
||||
{"ordering": "amount"},
|
||||
)
|
||||
name_response = self.client.get(
|
||||
"/api/v1/eis/procurements-44fz/",
|
||||
{"ordering": "-organisation_name"},
|
||||
)
|
||||
|
||||
self.assertEqual(amount_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in amount_response.data["data"]],
|
||||
[low_amount.id, high_amount.id],
|
||||
)
|
||||
self.assertEqual(name_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in name_response.data["data"]],
|
||||
[high_amount.id, low_amount.id],
|
||||
)
|
||||
|
||||
def test_system_logs_admin_only(self):
|
||||
log = ParserLoadLogFactory()
|
||||
url_logs = reverse("api_v1:system:parser-logs-list")
|
||||
|
||||
Reference in New Issue
Block a user