locale = self
locale = Locale.parse(locale)
retval = locale.languages.get(self.language)
- if self.territory or self.script or self.variant:
+ if retval and (self.territory or self.script or self.variant):
details = []
if self.script:
details.append(locale.scripts.get(self.script))
with open(filename, 'rb') as f:
return Unpickler(f).load()
+
+
+def test_issue_601_no_language_name_but_has_variant():
+ # kw_GB has a variant for Finnish but no actual language name for Finnish,
+ # so `get_display_name()` previously crashed with a TypeError as it attempted
+ # to concatenate " (Finnish)" to None.
+ # Instead, it's better to return None altogether, as we can't reliably format
+ # part of a language name.
+
+ assert Locale.parse('fi_FI').get_display_name('kw_GB') == None