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'])