""" Тесты для monitoring_fuel эндпоинтов """ import pytest import requests class TestMonitoringFuelEndpoints: """Тесты эндпоинтов monitoring_fuel""" def test_monitoring_fuel_get_total_by_columns(self, wait_for_api, api_base_url): """Тест получения данных по колонкам и расчёт средних значений""" # Пример из схемы MonitoringFuelTotalRequest data = { "columns": ["total", "normativ"] } response = requests.post(f"{api_base_url}/monitoring_fuel/get_total_by_columns", 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"✅ monitoring_fuel/get_total_by_columns работает: получены данные для колонок {data['columns']}") def test_monitoring_fuel_get_month_by_code(self, wait_for_api, api_base_url): """Тест получения данных за месяц""" # Пример из схемы MonitoringFuelMonthRequest data = { "month": "02" } response = requests.post(f"{api_base_url}/monitoring_fuel/get_month_by_code", 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"✅ monitoring_fuel/get_month_by_code работает: получены данные за месяц {data['month']}") def test_monitoring_fuel_get_series_by_id_and_columns(self, wait_for_api, api_base_url): """Тест получения временных рядов по ID и колонкам""" # Пример из схемы MonitoringFuelSeriesRequest data = { "columns": ["total", "normativ"] } response = requests.post(f"{api_base_url}/monitoring_fuel/get_series_by_id_and_columns", 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"✅ monitoring_fuel/get_series_by_id_and_columns работает: получены временные ряды для колонок {data['columns']}") def test_monitoring_fuel_get_total_by_columns_single_column(self, wait_for_api, api_base_url): """Тест получения данных по одной колонке""" data = { "columns": ["total"] } response = requests.post(f"{api_base_url}/monitoring_fuel/get_total_by_columns", 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"✅ monitoring_fuel/get_total_by_columns с одной колонкой работает: получены данные для колонки {data['columns'][0]}") def test_monitoring_fuel_get_month_by_code_different_month(self, wait_for_api, api_base_url): """Тест получения данных за другой месяц""" data = { "month": "01" } response = requests.post(f"{api_base_url}/monitoring_fuel/get_month_by_code", 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"✅ monitoring_fuel/get_month_by_code с другим месяцем работает: получены данные за месяц {data['month']}") def test_monitoring_fuel_get_series_by_id_and_columns_single_column(self, wait_for_api, api_base_url): """Тест получения временных рядов по одной колонке""" data = { "columns": ["total"] } response = requests.post(f"{api_base_url}/monitoring_fuel/get_series_by_id_and_columns", 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"✅ monitoring_fuel/get_series_by_id_and_columns с одной колонкой работает: получены временные ряды для колонки {data['columns'][0]}")