diff --git a/mkt/webapps/models.py b/mkt/webapps/models.py index 65ef17d40ca..7940d057de7 100644 --- a/mkt/webapps/models.py +++ b/mkt/webapps/models.py @@ -807,10 +807,16 @@ def supported_locales(self): for the current public version. """ + languages = [] + for locale in self.current_version.supported_locales.split(','): + if locale: + language = settings.LANGUAGES.get(locale.lower()) + if language: + languages.append(language) + return ( - settings.LANGUAGES[self.default_locale.lower()], - sorted([settings.LANGUAGES[l.lower()] for l - in self.current_version.supported_locales.split(',')]) + settings.LANGUAGES.get(self.default_locale.lower()), + sorted(languages) ) diff --git a/mkt/webapps/tests/test_models.py b/mkt/webapps/tests/test_models.py index e9d9d7df95c..27be9688123 100644 --- a/mkt/webapps/tests/test_models.py +++ b/mkt/webapps/tests/test_models.py @@ -434,6 +434,16 @@ def test_supported_locale_property(self): eq_(app.supported_locales, (u'English (US)', [u'Deutsch', u'Fran\xe7ais'])) + def test_supported_locale_property_empty(self): + app = app_factory() + eq_(app.supported_locales, (u'English (US)', [])) + + def test_supported_locale_property_bad(self): + app = app_factory() + app.versions.latest().update(supported_locales='de,xx', _signal=False) + app.reload() + eq_(app.supported_locales, (u'English (US)', [u'Deutsch'])) + class TestPackagedAppManifestUpdates(amo.tests.TestCase): # Note: More extensive tests for `Addon.update_names` are in the Addon