From 048b9a3a913260c7e61dbd48cd4dc17ce0ffc89d Mon Sep 17 00:00:00 2001 From: deadzilla Date: Sat, 11 Jul 2026 23:50:05 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20format=5Fweather=5Fdata=5Ffor=5Fconsole?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D1=8F=D0=B5=D1=82=20None=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=8D=D0=BC-=D0=B4=D1=8D=D1=88=20=D0=B2=D0=BC?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=BE=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20'None'=20=D0=B2=20=D1=82=D0=B5=D0=BA=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_commands_pg.py | 8 ++++---- utils/pogoda.py | 25 ++++++++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/tests/test_commands_pg.py b/tests/test_commands_pg.py index 2072b31..5423998 100644 --- a/tests/test_commands_pg.py +++ b/tests/test_commands_pg.py @@ -151,11 +151,11 @@ class TestPgCommand: await cog.pg.callback(cog, ctx) args = ctx.send.call_args[0][0] - # dict.get(key, default) возвращает None, если ключ есть, но значение None - assert "Температура: None°C" in args - assert "ощущается как None°C" in args + # None значения корректно заменяются на "—" + assert "Температура: —°C" in args + assert "ощущается как —°C" in args assert "Описание: —" in args - assert "Влажность: None%" in args + assert "Влажность: —%" in args assert "Давление: — мм рт. ст." in args @pytest.mark.asyncio diff --git a/utils/pogoda.py b/utils/pogoda.py index 9e28a88..9959184 100644 --- a/utils/pogoda.py +++ b/utils/pogoda.py @@ -195,13 +195,24 @@ def format_weather_data_for_console(data: Optional[dict]) -> Optional[list[str]] if not current: return None - temp = current.get("temp_C", "—") - feels_like = current.get("FeelsLikeC", "—") - description = translate_weather( - current.get("weatherDesc", [{}])[0].get("value", "—") - ) - humidity = current.get("humidity", "—") - wind_kmh = current.get("windspeedKmph", "—") + # dict.get() возвращает None если ключ существует со значением null; + # используем проверку на None для корректного fallback + temp = current.get("temp_C") + if temp is None: + temp = "—" + feels_like = current.get("FeelsLikeC") + if feels_like is None: + feels_like = "—" + weather_desc = current.get("weatherDesc", [{}])[0].get("value") + if weather_desc is None: + weather_desc = "—" + description = translate_weather(weather_desc) + humidity = current.get("humidity") + if humidity is None: + humidity = "—" + wind_kmh = current.get("windspeedKmph") + if wind_kmh is None: + wind_kmh = "—" try: wind = round(int(wind_kmh) / 3.6, 1) if wind_kmh != "—" else "—" except (ValueError, TypeError):