fix: parse Checko API response fields
This commit is contained in:
@@ -436,6 +436,52 @@ class CheckoClientApiTest(SimpleTestCase):
|
||||
|
||||
self.assertEqual(response.data.contracts[0].registry_number, contract_number)
|
||||
|
||||
def test_get_contracts_supports_checko_russian_response(self):
|
||||
inn = _digits(10)
|
||||
contract_number = _digits(12)
|
||||
|
||||
with TestHTTPServer() as server:
|
||||
server.add_json(
|
||||
"/v2/contracts",
|
||||
{
|
||||
"data": {
|
||||
"ЗапВсего": 1,
|
||||
"СтрВсего": 1,
|
||||
"СтрТекущ": 1,
|
||||
"Записи": [
|
||||
{
|
||||
"РегНомер": contract_number,
|
||||
"СтрЕИС": "https://zakupki.gov.ru/contract/1",
|
||||
"Дата": "2026-01-10",
|
||||
"ДатаИсп": "2026-12-31",
|
||||
"Цена": 125000,
|
||||
"Заказ": {
|
||||
"ИНН": inn,
|
||||
"НаимПолн": "Тестовый заказчик",
|
||||
},
|
||||
"Постав": {
|
||||
"ИНН": _digits(10),
|
||||
"НаимСокр": "Тестовый поставщик",
|
||||
},
|
||||
"Объекты": [{"Наим": "Поставка оборудования"}],
|
||||
}
|
||||
],
|
||||
},
|
||||
"meta": _meta_ok(),
|
||||
},
|
||||
)
|
||||
client = _client_for(server)
|
||||
response = client.get_contracts(
|
||||
ContractsRequest(inn=inn, law=ContractLaw.FZ44)
|
||||
)
|
||||
|
||||
contract = response.data.contracts[0]
|
||||
self.assertEqual(contract.registry_number, contract_number)
|
||||
self.assertEqual(contract.subject, "Поставка оборудования")
|
||||
self.assertEqual(contract.customer.inn, inn)
|
||||
self.assertEqual(len(contract.suppliers), 1)
|
||||
self.assertEqual(response.data.pagination.total_records, 1)
|
||||
|
||||
def test_get_legal_cases(self):
|
||||
inn = "".join(str(fake.random_int(0, 9)) for _ in range(10))
|
||||
case_number = fake.bothify(text="A-####/####")
|
||||
@@ -465,6 +511,47 @@ class CheckoClientApiTest(SimpleTestCase):
|
||||
|
||||
self.assertEqual(response.data.cases[0].case_number, case_number)
|
||||
|
||||
def test_get_legal_cases_supports_checko_russian_response(self):
|
||||
inn = _digits(10)
|
||||
case_number = "А40-12345/2026"
|
||||
|
||||
with TestHTTPServer() as server:
|
||||
server.add_json(
|
||||
"/v2/legal-cases",
|
||||
{
|
||||
"data": {
|
||||
"ЗапВсего": 1,
|
||||
"СтрВсего": 1,
|
||||
"СтрТекущ": 1,
|
||||
"ОбщСуммИск": 250000,
|
||||
"Записи": [
|
||||
{
|
||||
"Номер": case_number,
|
||||
"СтрКАД": "https://kad.arbitr.ru/Card/1",
|
||||
"Дата": "2026-02-03",
|
||||
"Тип": "Гражданское",
|
||||
"ПрАктив": True,
|
||||
"Суд": "Арбитражный суд города Москвы",
|
||||
"Ист": [{"ИНН": inn, "Наим": "Истец"}],
|
||||
"Ответ": [{"ИНН": _digits(10), "Наим": "Ответчик"}],
|
||||
"СуммИск": 250000,
|
||||
}
|
||||
],
|
||||
},
|
||||
"meta": _meta_ok(),
|
||||
},
|
||||
)
|
||||
client = _client_for(server)
|
||||
response = client.get_legal_cases(LegalCasesRequest(inn=inn))
|
||||
|
||||
legal_case = response.data.cases[0]
|
||||
self.assertEqual(legal_case.case_number, case_number)
|
||||
self.assertEqual(legal_case.claim_amount, 250000)
|
||||
self.assertEqual(legal_case.plaintiffs[0].inn, inn)
|
||||
self.assertEqual(legal_case.status, "active")
|
||||
self.assertEqual(response.data.total_claim_amount, 250000)
|
||||
self.assertEqual(response.data.pagination.total_records, 1)
|
||||
|
||||
def test_api_error_handling(self):
|
||||
with TestHTTPServer() as server:
|
||||
server.add_json(
|
||||
@@ -583,6 +670,49 @@ class CheckoClientExtraEndpointsTest(SimpleTestCase):
|
||||
|
||||
self.assertEqual(response.data.inspections[0].id, inspection_id)
|
||||
|
||||
def test_get_inspections_supports_checko_russian_response(self):
|
||||
inn = _digits(10)
|
||||
inspection_number = "77260041000101234567"
|
||||
|
||||
with TestHTTPServer() as server:
|
||||
server.add_json(
|
||||
"/v2/inspections",
|
||||
{
|
||||
"data": {
|
||||
"ЗапВсего": 1,
|
||||
"СтрВсего": 1,
|
||||
"СтрТекущ": 1,
|
||||
"Записи": [
|
||||
{
|
||||
"Номер": inspection_number,
|
||||
"Статус": "Завершено",
|
||||
"Наруш": True,
|
||||
"ТипРасп": "Внеплановая",
|
||||
"ТипПров": "Выездная",
|
||||
"ДатаНач": "2026-03-01",
|
||||
"ДатаОконч": "2026-03-05",
|
||||
"Цель": "Контроль обязательных требований",
|
||||
"ОргКонтр": {
|
||||
"ОГРН": _digits(13),
|
||||
"Наим": "Контрольный орган",
|
||||
},
|
||||
"Объекты": [{"Результ": "Выявлены нарушения"}],
|
||||
}
|
||||
],
|
||||
},
|
||||
"meta": _meta_ok(),
|
||||
},
|
||||
)
|
||||
client = _client_for(server)
|
||||
response = client.get_inspections(InspectionsRequest(inn=inn))
|
||||
|
||||
inspection = response.data.inspections[0]
|
||||
self.assertEqual(inspection.id, inspection_number)
|
||||
self.assertEqual(inspection.authority_name, "Контрольный орган")
|
||||
self.assertEqual(inspection.result, "Выявлены нарушения")
|
||||
self.assertTrue(inspection.violations_found)
|
||||
self.assertEqual(response.data.pagination.total_records, 1)
|
||||
|
||||
def test_iter_inspections_pagination(self):
|
||||
inn = _digits(10)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user