Skip to content

Commit

Permalink
FINALLY fix language support.
Browse files Browse the repository at this point in the history
Should have added tests in the beginning :)
  • Loading branch information
jbeluch committed Sep 14, 2012
1 parent 23e0b71 commit 97308c4
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 6 deletions.
38 changes: 36 additions & 2 deletions tests/test_addon.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,40 @@ def test_to_dict(self):
self.assertEqual(val, actual[key])


LANG_XML_TMP = '''
<addon id="plugin.video.academicearth" name="Academic Earth" provider-name="Jonathan Beluch (jbel)" version="1.2.1">
<extension point="xbmc.addon.metadata">
%s
</extension>
</addon>
'''
class TestLangTags(TestCase):

def test_no_lang_tag(self):
xmlstr = LANG_XML_TMP % ''
addon = Addon(ET.fromstring(xmlstr))
self.assertEqual(addon.languages, [])

def test_self_close_lang_tag(self):
xmlstr = LANG_XML_TMP % '<language/>'
addon = Addon(ET.fromstring(xmlstr))
self.assertEqual(addon.languages, [])

def test_empty_lang_tag(self):
xmlstr = LANG_XML_TMP % '<language></language>'
addon = Addon(ET.fromstring(xmlstr))
self.assertEqual(addon.languages, [])

def test_data_lang_tag(self):
xmlstr = LANG_XML_TMP % '<language>en</language>'
addon = Addon(ET.fromstring(xmlstr))
self.assertEqual(addon.languages, ['en'])

xmlstr = LANG_XML_TMP % '<language>en fr</language>'
addon = Addon(ET.fromstring(xmlstr))
self.assertEqual(addon.languages, ['en', 'fr'])



if __name__ == '__main__':
import unittest
unittest.main()
unittest.main()
9 changes: 5 additions & 4 deletions xam/addon.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,11 @@ def metadata(self):
@silence_attr_error
def languages(self):
'''Returns a list of language codes the addon provides content for.'''
lang = self.metadata.find('language')
if lang is not None:
return lang.text.split()
return []
try:
return self.metadata.find('language').text.split()
except AttributeError:
# no lang tag, self closing lang tag, or empty lang tag
return []


@property
Expand Down

0 comments on commit 97308c4

Please sign in to comment.