Skip to content

Commit e993c7b

Browse files
author
benoit-cty
committed
uncovered validation branches and the offline decorator forwarding path.
1 parent b08b602 commit e993c7b

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

tests/test_config.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,30 @@ def test_offline_tracker_accepts_force_carbon_intensity_parameter(self):
265265

266266
self.assertEqual(tracker.force_carbon_intensity_g_co2e_kwh, 0.0)
267267

268+
def test_force_carbon_intensity_rejects_negative_parameter(self):
269+
with patch("builtins.open", new_callable=get_custom_mock_open("", "")):
270+
with patch("os.path.exists", return_value=True):
271+
tracker = EmissionsTracker(
272+
force_carbon_intensity_g_co2e_kwh=-1,
273+
save_to_file=False,
274+
allow_multiple_runs=True,
275+
)
276+
277+
self.assertIsNone(tracker.force_carbon_intensity_g_co2e_kwh)
278+
self.assertIsNone(tracker._conf["force_carbon_intensity_g_co2e_kwh"])
279+
280+
def test_force_carbon_intensity_rejects_non_numeric_parameter(self):
281+
with patch("builtins.open", new_callable=get_custom_mock_open("", "")):
282+
with patch("os.path.exists", return_value=True):
283+
tracker = EmissionsTracker(
284+
force_carbon_intensity_g_co2e_kwh="invalid",
285+
save_to_file=False,
286+
allow_multiple_runs=True,
287+
)
288+
289+
self.assertIsNone(tracker.force_carbon_intensity_g_co2e_kwh)
290+
self.assertIsNone(tracker._conf["force_carbon_intensity_g_co2e_kwh"])
291+
268292
def test_track_emissions_forwards_force_carbon_intensity_parameter(self):
269293
with patch("codecarbon.emissions_tracker.EmissionsTracker") as tracker_class:
270294

@@ -283,6 +307,28 @@ def tracked_function():
283307
321.0,
284308
)
285309

310+
def test_track_emissions_forwards_force_carbon_intensity_to_offline_tracker(self):
311+
with patch(
312+
"codecarbon.emissions_tracker.OfflineEmissionsTracker"
313+
) as tracker_class:
314+
315+
@track_emissions(
316+
offline=True,
317+
country_iso_code="FRA",
318+
force_carbon_intensity_g_co2e_kwh=321.0,
319+
save_to_file=False,
320+
)
321+
def tracked_function():
322+
return "success"
323+
324+
self.assertEqual(tracked_function(), "success")
325+
326+
tracker_class.assert_called_once()
327+
self.assertEqual(
328+
tracker_class.call_args.kwargs["force_carbon_intensity_g_co2e_kwh"],
329+
321.0,
330+
)
331+
286332
@mock.patch.dict(
287333
os.environ,
288334
{

0 commit comments

Comments
 (0)