Skip to content

Commit 9896dfb

Browse files
Fix Python 3.14 test collection issue by using fixtures instead of parametrize
Co-authored-by: cloneofghosts <10248058+cloneofghosts@users.noreply.github.com>
1 parent dc6471f commit 9896dfb

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

tests/test_forecast.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@
2020
sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__), "..")))
2121

2222

23-
@mock.patch("requests.Session", mokcs.MockSession)
24-
def get_forecast_sync() -> Forecast:
25-
pirate_weather = PirateWeather("api_key")
23+
@pytest.fixture
24+
def forecast_sync():
25+
with mock.patch("requests.Session", mokcs.MockSession):
26+
pirate_weather = PirateWeather("api_key")
27+
return pirate_weather.get_forecast(DATA["latitude"], DATA["longitude"])
2628

27-
return pirate_weather.get_forecast(DATA["latitude"], DATA["longitude"])
2829

29-
30-
def get_forecast_async():
30+
@pytest.fixture
31+
def forecast_async():
3132
async def get_async_data():
3233
pirate_weather = PirateWeatherAsync("api_key")
3334
with aioresponses.aioresponses() as resp:
@@ -45,15 +46,21 @@ async def get_async_data():
4546
return asyncio.run(get_async_data())
4647

4748

48-
@pytest.mark.parametrize("forecast", [get_forecast_sync(), get_forecast_async()])
49+
@pytest.fixture(params=["sync", "async"])
50+
def forecast(request, forecast_sync, forecast_async):
51+
if request.param == "sync":
52+
return forecast_sync
53+
else:
54+
return forecast_async
55+
56+
4957
def test_forecast_base_fields(forecast):
5058
assert isinstance(forecast, Forecast)
5159
assert forecast.latitude == DATA["latitude"]
5260
assert forecast.longitude == DATA["longitude"]
5361
assert forecast.timezone == DATA["timezone"]
5462

5563

56-
@pytest.mark.parametrize("forecast", [get_forecast_sync(), get_forecast_async()])
5764
def test_forecast_currently(forecast):
5865
f_item, d_item = forecast.currently, copy.deepcopy(DATA["currently"])
5966
for key in d_item:
@@ -64,7 +71,6 @@ def test_forecast_currently(forecast):
6471
assert getattr(f_item, forecast_key) == d_item[key]
6572

6673

67-
@pytest.mark.parametrize("forecast", [get_forecast_sync(), get_forecast_async()])
6874
def test_forecast_minutely(forecast):
6975
assert forecast.minutely.summary == DATA["minutely"]["summary"]
7076
assert forecast.minutely.icon == DATA["minutely"]["icon"]
@@ -80,7 +86,6 @@ def test_forecast_minutely(forecast):
8086
assert getattr(f_item, forecast_key) == d_item[key]
8187

8288

83-
@pytest.mark.parametrize("forecast", [get_forecast_sync(), get_forecast_async()])
8489
def test_forecast_hourly(forecast):
8590
assert forecast.hourly.summary == DATA["hourly"]["summary"]
8691
assert forecast.hourly.icon == DATA["hourly"]["icon"]
@@ -96,7 +101,6 @@ def test_forecast_hourly(forecast):
96101
assert getattr(f_item, forecast_key) == d_item[key]
97102

98103

99-
@pytest.mark.parametrize("forecast", [get_forecast_sync(), get_forecast_async()])
100104
def test_forecast_daily(forecast):
101105
assert forecast.daily.summary == DATA["daily"]["summary"]
102106
assert forecast.daily.icon == DATA["daily"]["icon"]
@@ -112,7 +116,6 @@ def test_forecast_daily(forecast):
112116
assert getattr(f_item, forecast_key) == d_item[key]
113117

114118

115-
@pytest.mark.parametrize("forecast", [get_forecast_sync(), get_forecast_async()])
116119
def test_forecast_day_night(forecast):
117120
assert forecast.day_night.summary == DATA["day_night"]["summary"]
118121
assert forecast.day_night.icon == DATA["day_night"]["icon"]
@@ -128,7 +131,6 @@ def test_forecast_day_night(forecast):
128131
assert getattr(f_item, forecast_key) == d_item[key]
129132

130133

131-
@pytest.mark.parametrize("forecast", [get_forecast_sync(), get_forecast_async()])
132134
def test_forecast_alerts(forecast):
133135
for f_item, d_item in zip(
134136
forecast.alerts, copy.deepcopy(DATA["alerts"]), strict=False
@@ -141,7 +143,6 @@ def test_forecast_alerts(forecast):
141143
assert getattr(f_item, forecast_key) == d_item[key]
142144

143145

144-
@pytest.mark.parametrize("forecast", [get_forecast_sync(), get_forecast_async()])
145146
def test_forecast_flags(forecast):
146147
d_item = copy.deepcopy(DATA["flags"])
147148
f_item = forecast.flags

0 commit comments

Comments
 (0)