79 lines
3.8 KiB
Python
79 lines
3.8 KiB
Python
"""
|
||
Тесты для svodka_pm эндпоинтов
|
||
"""
|
||
import pytest
|
||
import requests
|
||
|
||
|
||
class TestSvodkaPMEndpoints:
|
||
"""Тесты эндпоинтов svodka_pm"""
|
||
|
||
def test_svodka_pm_single_og(self, wait_for_api, api_base_url):
|
||
"""Тест получения данных по одному ОГ"""
|
||
# Пример из схемы SvodkaPMSingleOGRequest
|
||
data = {
|
||
"id": "SNPZ",
|
||
"codes": [78, 79],
|
||
"columns": ["ПП", "СЭБ"]
|
||
}
|
||
|
||
response = requests.post(f"{api_base_url}/svodka_pm/single_og", json=data)
|
||
|
||
assert response.status_code == 200, f"Ожидался статус 200, получен {response.status_code}: {response.text}"
|
||
|
||
result = response.json()
|
||
assert result["success"] is True, f"Запрос не удался: {result}"
|
||
assert "data" in result, "Отсутствует поле 'data' в ответе"
|
||
print(f"✅ svodka_pm/single_og работает: получены данные для {data['id']}")
|
||
|
||
def test_svodka_pm_total_ogs(self, wait_for_api, api_base_url):
|
||
"""Тест получения данных по всем ОГ"""
|
||
# Пример из схемы SvodkaPMTotalOGsRequest
|
||
data = {
|
||
"codes": [78, 79, 394, 395, 396, 397, 81, 82, 83, 84],
|
||
"columns": ["БП", "ПП", "СЭБ"]
|
||
}
|
||
|
||
response = requests.post(f"{api_base_url}/svodka_pm/get_total_ogs", json=data)
|
||
|
||
assert response.status_code == 200, f"Ожидался статус 200, получен {response.status_code}: {response.text}"
|
||
|
||
result = response.json()
|
||
assert result["success"] is True, f"Запрос не удался: {result}"
|
||
assert "data" in result, "Отсутствует поле 'data' в ответе"
|
||
print(f"✅ svodka_pm/get_total_ogs работает: получены данные по всем ОГ")
|
||
|
||
def test_svodka_pm_single_og_with_search(self, wait_for_api, api_base_url):
|
||
"""Тест получения данных по одному ОГ с параметром search"""
|
||
data = {
|
||
"id": "SNPZ",
|
||
"codes": [78, 79],
|
||
"columns": ["ПП", "СЭБ"],
|
||
"search": "Итого"
|
||
}
|
||
|
||
response = requests.post(f"{api_base_url}/svodka_pm/single_og", json=data)
|
||
|
||
assert response.status_code == 200, f"Ожидался статус 200, получен {response.status_code}: {response.text}"
|
||
|
||
result = response.json()
|
||
assert result["success"] is True, f"Запрос не удался: {result}"
|
||
assert "data" in result, "Отсутствует поле 'data' в ответе"
|
||
print(f"✅ svodka_pm/single_og с search работает: получены данные для {data['id']} с фильтром")
|
||
|
||
def test_svodka_pm_total_ogs_with_search(self, wait_for_api, api_base_url):
|
||
"""Тест получения данных по всем ОГ с параметром search"""
|
||
data = {
|
||
"codes": [78, 79, 394, 395, 396, 397, 81, 82, 83, 84],
|
||
"columns": ["БП", "ПП", "СЭБ"],
|
||
"search": "Итого"
|
||
}
|
||
|
||
response = requests.post(f"{api_base_url}/svodka_pm/get_total_ogs", json=data)
|
||
|
||
assert response.status_code == 200, f"Ожидался статус 200, получен {response.status_code}: {response.text}"
|
||
|
||
result = response.json()
|
||
assert result["success"] is True, f"Запрос не удался: {result}"
|
||
assert "data" in result, "Отсутствует поле 'data' в ответе"
|
||
print(f"✅ svodka_pm/get_total_ogs с search работает: получены данные по всем ОГ с фильтром") |