@@ -136,7 +136,43 @@ def test_decoding_failure(self, mock_b64decode):
136136 self .assertIn ("Failed to decode release notes" , result ["summary" ])
137137 self .assertEqual (result ["summaries_created" ], 0 )
138138
139- def test_successful_summary (self ):
139+ @patch ("features.chat.telegram.release_summary_responder.config" )
140+ def test_version_mismatch (self , mock_config ):
141+ mock_config .version = "1.0.0"
142+ release_output_json = {
143+ "latest_version" : "1.0.0" ,
144+ "new_target_version" : "1.0.1" ,
145+ "release_quality" : "stable" ,
146+ "release_notes_b64" : base64 .b64encode (b"notes" ).decode (),
147+ }
148+ payload = ReleaseOutputPayload (
149+ release_output_b64 = base64 .b64encode (json .dumps (release_output_json ).encode ()).decode (),
150+ )
151+ result = respond_with_summary (payload , self .mock_di )
152+ self .assertIn ("Skipping release processing" , result ["summary" ])
153+ self .assertIn ("1.0.0" , result ["summary" ])
154+ self .assertIn ("1.0.1" , result ["summary" ])
155+ self .assertEqual (result ["summaries_created" ], 0 )
156+ self .assertEqual (result ["chats_notified" ], 0 )
157+ self .assertTrue (result ["should_retry" ])
158+
159+ @patch ("features.chat.telegram.release_summary_responder.config" )
160+ def test_version_match (self , mock_config ):
161+ mock_config .version = "1.0.1"
162+ mock_configured_tool = Mock ()
163+ self .mock_di .tool_choice_resolver .require_tool .return_value = mock_configured_tool
164+ mock_summary_service = Mock (spec = ReleaseSummaryService )
165+ mock_summary_service .execute .return_value = Mock (content = "Test summary" )
166+ self .mock_di .release_summary_service .return_value = mock_summary_service
167+ self .mock_di .chat_config_crud .get_all .return_value = []
168+ result = respond_with_summary (self .payload , self .mock_di )
169+ self .assertEqual (result ["summaries_created" ], 1 )
170+ self .assertNotIn ("Skipping" , result ["summary" ])
171+ self .assertFalse (result ["should_retry" ])
172+
173+ @patch ("features.chat.telegram.release_summary_responder.config" )
174+ def test_successful_summary (self , mock_config ):
175+ mock_config .version = "1.0.1"
140176 # Mock tool choice resolver and release summary service
141177 mock_configured_tool = Mock ()
142178 self .mock_di .tool_choice_resolver .require_tool .return_value = mock_configured_tool
@@ -161,7 +197,9 @@ def test_successful_summary(self):
161197 # noinspection PyUnresolvedReferences
162198 mock_platform_sdk .send_text_message .assert_called_once_with ("1234" , "Test summary" )
163199
164- def test_multiple_languages (self ):
200+ @patch ("features.chat.telegram.release_summary_responder.config" )
201+ def test_multiple_languages (self , mock_config ):
202+ mock_config .version = "1.0.1"
165203 mock_summarizer = Mock (spec = ReleaseSummaryService )
166204 mock_summarizer .execute .return_value = AIMessage (content = "Summary" )
167205 self .mock_di .release_summary_service .return_value = mock_summarizer
@@ -214,7 +252,9 @@ def test_no_eligible_chats(self):
214252 result = respond_with_summary (self .payload , self .mock_di )
215253 self .assertEqual (result ["chats_eligible" ], 0 )
216254
217- def test_all_translations (self ):
255+ @patch ("features.chat.telegram.release_summary_responder.config" )
256+ def test_all_translations (self , mock_config ):
257+ mock_config .version = "1.0.1"
218258 mock_sum = Mock (spec = ReleaseSummaryService )
219259 mock_sum .execute .return_value = Mock (content = "Gen summary" )
220260 self .mock_di .release_summary_service .return_value = mock_sum
0 commit comments