MCPcopy
hub / github.com/Aider-AI/aider / test_normalize_language

Method test_normalize_language

tests/basic/test_coder.py:1214–1263  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1212 self.assertEqual(coder.cur_messages[-1]["role"], "assistant")
1213
1214 def test_normalize_language(self):
1215 coder = Coder.create(self.GPT35, None, io=InputOutput())
1216
1217 # Test None and empty
1218 self.assertIsNone(coder.normalize_language(None))
1219 self.assertIsNone(coder.normalize_language(""))
1220
1221 # Test "C" and "POSIX"
1222 self.assertIsNone(coder.normalize_language("C"))
1223 self.assertIsNone(coder.normalize_language("POSIX"))
1224
1225 # Test already formatted names
1226 self.assertEqual(coder.normalize_language("English"), "English")
1227 self.assertEqual(coder.normalize_language("French"), "French")
1228
1229 # Test common locale codes (fallback map, assuming babel is not installed or fails)
1230 with patch("aider.coders.base_coder.Locale", None):
1231 self.assertEqual(coder.normalize_language("en_US"), "English")
1232 self.assertEqual(coder.normalize_language("fr_FR"), "French")
1233 self.assertEqual(coder.normalize_language("es"), "Spanish")
1234 self.assertEqual(coder.normalize_language("de_DE.UTF-8"), "German")
1235 self.assertEqual(
1236 coder.normalize_language("zh-CN"), "Chinese"
1237 ) # Test hyphen in fallback
1238 self.assertEqual(coder.normalize_language("ja"), "Japanese")
1239 self.assertEqual(
1240 coder.normalize_language("unknown_code"), "unknown_code"
1241 ) # Fallback to original
1242
1243 # Test with babel.Locale mocked (available)
1244 mock_babel_locale = MagicMock()
1245 mock_locale_instance = MagicMock()
1246 mock_babel_locale.parse.return_value = mock_locale_instance
1247
1248 with patch("aider.coders.base_coder.Locale", mock_babel_locale):
1249 mock_locale_instance.get_display_name.return_value = "english" # For en_US
1250 self.assertEqual(coder.normalize_language("en_US"), "English")
1251 mock_babel_locale.parse.assert_called_with("en_US")
1252 mock_locale_instance.get_display_name.assert_called_with("en")
1253
1254 mock_locale_instance.get_display_name.return_value = "french" # For fr-FR
1255 self.assertEqual(coder.normalize_language("fr-FR"), "French") # Test with hyphen
1256 mock_babel_locale.parse.assert_called_with("fr_FR") # Hyphen replaced
1257 mock_locale_instance.get_display_name.assert_called_with("en")
1258
1259 # Test with babel.Locale raising an exception (simulating parse failure)
1260 mock_babel_locale_error = MagicMock()
1261 mock_babel_locale_error.parse.side_effect = Exception("Babel parse error")
1262 with patch("aider.coders.base_coder.Locale", mock_babel_locale_error):
1263 self.assertEqual(coder.normalize_language("en_US"), "English") # Falls back to map
1264
1265 def test_get_user_language(self):
1266 io = InputOutput()

Callers

nothing calls this directly

Calls 3

InputOutputClass · 0.90
createMethod · 0.80
normalize_languageMethod · 0.80

Tested by

no test coverage detected