def __init__(self, filename, is_egg=False): config = DesktopParser() if is_egg: self.plugin_path = filename msg = "%s is not a valid egg file" % filename assert is_zipfile(filename), msg with ZipFile(filename, "r") as egg: filename = [f for f in egg.namelist() if f.endswith('plugin')][0] plugin_file = egg.open(filename) config.readfp(plugin_file) else: plugin_path = os.path.dirname(os.path.dirname(filename)) self.plugin_path = plugin_path config.read(filename) self.name = unicode(os.path.basename(filename).split('.')[0]) self.entry = config.get('Plugin', 'Module') self.dependencies = [] if config.has_option('Plugin', 'Dependencies'): dependencies = config.get('Plugin', 'Dependencies').split(',') for dependency in dependencies: self.dependencies.append(unicode(dependency.strip())) self.filename = filename settings = get_settings() lang = settings.get('user-locale', None) if not lang: lang = get_system_locale() self.long_name = config.get_locale('Plugin', 'Name', lang) self.description = config.get_locale('Plugin', 'Description', lang)
class TestTotem(unittest.TestCase): def setUp(self): self.parser = DesktopParser() self.parser.readfp(StringIO.StringIO(desktop_data)) def test(self): self.assertEqual(self.parser.get('Desktop Entry', 'Name'), 'Totem Movie Player') self.assertEqual(self.parser.get_locale('Desktop Entry', 'Name', 'pt'), 'Reprodutor de Filmes Totem') self.assertEqual(self.parser.get_locale('Desktop Entry', 'Name', 'sv'), 'Filmspelaren Totem') self.assertEqual( self.parser.get_string_list('Desktop Entry', 'Categories'), ['GNOME', 'Application', 'AudioVideo'])
class TestTotem(unittest.TestCase): def setUp(self): self.parser = DesktopParser() self.parser.readfp(StringIO.StringIO(desktop_data)) def test(self): self.assertEqual(self.parser.get('Desktop Entry', 'Name'), 'Totem Movie Player') self.assertEqual(self.parser.get_locale( 'Desktop Entry', 'Name', 'pt'), 'Reprodutor de Filmes Totem') self.assertEqual(self.parser.get_locale( 'Desktop Entry', 'Name', 'sv'), 'Filmspelaren Totem') self.assertEqual( self.parser.get_string_list('Desktop Entry', 'Categories'), ['GNOME', 'Application', 'AudioVideo'])
def setUp(self): self.parser = DesktopParser() self.parser.add_section('Section')
class TestDesktopParser(unittest.TestCase): def setUp(self): self.parser = DesktopParser() self.parser.add_section('Section') def testList(self): self.parser.set_string_list('Section', 'Foo', ['A', 'B', 'C']) self.assertEqual(self.parser.get_string_list('Section', 'Foo'), ['A', 'B', 'C']) self.parser.set_integer_list('Section', 'Bar', [1, 2, 3]) self.assertEqual(self.parser.get_integer_list('Section', 'Bar'), [1, 2, 3]) self.parser.set_boolean_list('Section', 'Bar', [True, False]) self.assertEqual(self.parser.get_boolean_list('Section', 'Bar'), [True, False]) def testLocale(self): self.parser.set_locale('Section', 'Foo', 'sv', 'Apa') self.assertEqual(self.parser.get_locale('Section', 'Foo', 'sv'), 'Apa') self.parser.set_string_list_locale('Section', 'Foo', 'sv', ['å', 'ä', 'ö']) self.assertEqual( self.parser.get_string_list_locale('Section', 'Foo', 'sv'), ['å', 'ä', 'ö']) def testListSeparator(self): self.parser.set('Section', 'Comma', '1,2,3') self.assertEqual(self.parser.get_string_list('Section', 'Comma'), ['1,2,3']) self.parser.set_list_separator(',') self.assertEqual(self.parser.get_string_list('Section', 'Comma'), ['1', '2', '3'])
def setUp(self): self.parser = DesktopParser() self.parser.readfp(StringIO.StringIO(desktop_data))
def _register_plugin_description(self, filename): dp = DesktopParser() dp.read(filename) desc = PluginDescription(dp, filename) self._plugin_descriptions[desc.name] = desc
def __init__(self, filename, is_egg=False): config = DesktopParser() if is_egg: self.plugin_path = filename msg = "%s is not a valid egg file" % filename assert is_zipfile(filename), msg with ZipFile(filename, "r") as egg: filename = [f for f in egg.namelist() if f.endswith('plugin')][0] plugin_file = egg.open(filename) config.readfp(plugin_file) else: plugin_path = os.path.dirname(os.path.dirname(filename)) self.plugin_path = plugin_path config.read(filename) self.name = unicode(os.path.basename(filename).split('.')[0]) self.entry = config.get('Plugin', 'Module') self.filename = filename if config.has_option('Plugin', 'Dependencies'): self.dependencies = [ unicode(dependency.strip()) for dependency in config.get( 'Plugin', 'Dependencies').split(',') ] else: self.dependencies = [] if config.has_option('Plugin', 'Replaces'): self.replaces = [ unicode(replace.strip()) for replace in config.get('Plugin', 'Replaces').split(',') ] else: self.replaces = [] settings = get_settings() lang = settings.get('user-locale', None) if not lang: lang = get_system_locale() self.long_name = config.get_locale('Plugin', 'Name', lang) self.description = config.get_locale('Plugin', 'Description', lang)
class TestDesktopParser(unittest.TestCase): def setUp(self): self.parser = DesktopParser() self.parser.add_section('Section') def testList(self): self.parser.set_string_list('Section', 'Foo', ['A', 'B', 'C']) self.assertEqual( self.parser.get_string_list('Section', 'Foo'), ['A', 'B', 'C']) self.parser.set_integer_list('Section', 'Bar', [1, 2, 3]) self.assertEqual( self.parser.get_integer_list('Section', 'Bar'), [1, 2, 3]) self.parser.set_boolean_list('Section', 'Bar', [True, False]) self.assertEqual( self.parser.get_boolean_list('Section', 'Bar'), [True, False]) def testLocale(self): self.parser.set_locale( 'Section', 'Foo', 'sv', 'Apa') self.assertEqual( self.parser.get_locale('Section', 'Foo', 'sv'), 'Apa') self.parser.set_string_list_locale( 'Section', 'Foo', 'sv', ['å', 'ä', 'ö']) self.assertEqual( self.parser.get_string_list_locale('Section', 'Foo', 'sv'), ['å', 'ä', 'ö']) def testListSeparator(self): self.parser.set('Section', 'Comma', '1,2,3') self.assertEqual( self.parser.get_string_list('Section', 'Comma'), ['1,2,3']) self.parser.set_list_separator(',') self.assertEqual( self.parser.get_string_list('Section', 'Comma'), ['1', '2', '3'])