@@ -70,29 +70,34 @@ def test_predict_carbon_intensity(self,mock_intensity_service):
7070
7171 self .assertEqual (ci , 10.5 )
7272
73- mock_intensity_service .return_value .generate_logging_message .assert_called_with (carbon_intensity_fetch = mock_fetch )
74- self .logger .info .assert_called ()
75- self .logger .output .assert_called ()
7673
74+ @patch ("carbontracker.tracker.IntensityService" )
75+ def test_average_carbon_intensity (self , mock_intensity_service ):
76+ # Ensure background fetch returns a real-looking object, not a MagicMock
77+ mock_intensity_service .return_value .fetch_carbon_intensity .return_value = IntensityFetch (
78+ carbon_intensity = 0.0 ,
79+ address = "n/a" ,
80+ country = "n/a" ,
81+ is_fetched = False ,
82+ is_localized = False ,
83+ )
84+
85+ thread = CarbonIntensityThread (self .logger , self .stop_event )
7786
78- @patch ("carbontracker.emissions.intensity.intensity.IntensityFetch" )
79- def test_average_carbon_intensity (self , carbon_intensity_fetch ):
8087 mock_carbon_intensity_fetch = Mock ()
8188 mock_carbon_intensity_fetch .carbon_intensity = 10.5
8289 mock_carbon_intensity_fetch .address = "test_address"
8390
8491 mock_carbon_intensity_fetch_2 = Mock ()
85- mock_carbon_intensity_fetch_2 .carbon_intensity = 13.0
92+ mock_carbon_intensity_fetch_2 .carbon_intensity = 13.0
8693 mock_carbon_intensity_fetch_2 .address = "test_address"
87- thread = CarbonIntensityThread (self .logger , self .stop_event )
8894
89- thread .carbon_intensities_fetches = []
90- thread .carbon_intensities_fetches .append (mock_carbon_intensity_fetch )
91- thread .carbon_intensities_fetches .append (mock_carbon_intensity_fetch_2 )
95+ thread .carbon_intensities_fetches = [mock_carbon_intensity_fetch , mock_carbon_intensity_fetch_2 ]
9296
9397 avg_ci = thread .average_carbon_intensity ()
9498 self .assertEqual (avg_ci , 11.75 )
9599
100+
96101 @patch ("carbontracker.tracker.CarbonIntensityThread._fetch_carbon_intensity" )
97102 def test_run_with_fetch_exception (self , mock_fetch_carbon_intensity ):
98103 mock_fetch_carbon_intensity .side_effect = Exception ("Test exception" )
@@ -972,7 +977,9 @@ def _assert_intensity_fetcher_used(self, provider_key, patch_target, api_key):
972977
973978 mock_constructor .assert_called_once_with (logger = self .mock_logger , api_key = api_key )
974979 self .mock_intensity_thread_class .assert_called_once ()
975- intensity_fetcher = self .mock_intensity_thread_class .call_args .kwargs [
980+ _ ,intensity_fetcher_kwargs = self .mock_intensity_thread_class .call_args
981+
982+ intensity_fetcher = intensity_fetcher_kwargs [
976983 "intensity_fetcher"
977984 ]
978985 self .assertIs (intensity_fetcher , expected_fetcher )
0 commit comments