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):