def test_find_package_desktopfile(self): '''find_package_desktopfile().''' # package without any .desktop file nodesktop = 'bash' assert len([f for f in packaging.get_files(nodesktop) if f.endswith('.desktop')]) == 0 # find a package with one and a package with multiple .desktop files onedesktop = None multidesktop = None for d in os.listdir('/usr/share/applications/'): if not d.endswith('.desktop'): continue pkg = packaging.get_file_package( os.path.join('/usr/share/applications/', d)) num = len([f for f in packaging.get_files(pkg) if f.endswith('.desktop')]) if not onedesktop and num == 1: onedesktop = pkg elif not multidesktop and num > 1: multidesktop = pkg if onedesktop and multidesktop: break if nodesktop: self.assertEqual(find_package_desktopfile(nodesktop), None, 'no-desktop package %s' % nodesktop) if multidesktop: self.assertEqual(find_package_desktopfile(multidesktop), None, 'multi-desktop package %s' % multidesktop) if onedesktop: d = find_package_desktopfile(onedesktop) self.assertNotEqual(d, None, 'one-desktop package %s' % onedesktop) self.assert_(os.path.exists(d)) self.assert_(d.endswith('.desktop'))
def files_in_package(package, globpat=None): '''Retrieve a list of files owned by package, optionally matching globpat''' files = packaging.get_files(package) if globpat: result = [f for f in files if glob.fnmatch.fnmatch(f, globpat)] else: result = files return result
def files_in_package(package, globpat=None): '''Retrieve a list of files owned by package, optionally matching globpat''' files = packaging.get_files(package) if globpat: result = [f for f in files if glob.fnmatch.fnmatch(f, globpat)] else: result = files return result
def test_find_package_desktopfile(self): '''find_package_desktopfile().''' # package without any .desktop file nodesktop = 'bash' assert len([ f for f in packaging.get_files(nodesktop) if f.endswith('.desktop') ]) == 0 # find a package with one and a package with multiple .desktop files onedesktop = None multidesktop = None for d in os.listdir('/usr/share/applications/'): if not d.endswith('.desktop'): continue pkg = packaging.get_file_package( os.path.join('/usr/share/applications/', d)) num = len([ f for f in packaging.get_files(pkg) if f.endswith('.desktop') ]) if not onedesktop and num == 1: onedesktop = pkg elif not multidesktop and num > 1: multidesktop = pkg if onedesktop and multidesktop: break if nodesktop: self.assertEqual(find_package_desktopfile(nodesktop), None, 'no-desktop package %s' % nodesktop) if multidesktop: self.assertEqual(find_package_desktopfile(multidesktop), None, 'multi-desktop package %s' % multidesktop) if onedesktop: d = find_package_desktopfile(onedesktop) self.assertNotEqual(d, None, 'one-desktop package %s' % onedesktop) self.assert_(os.path.exists(d)) self.assert_(d.endswith('.desktop'))
def find_package_desktopfile(package): '''Return a package's .desktop file. If given package is installed and has a single .desktop file, return the path to it, otherwise return None. ''' if package is None: return None desktopfile = None for line in packaging.get_files(package): if line.endswith('.desktop'): if desktopfile: return None # more than one else: desktopfile = line return desktopfile
def find_package_desktopfile(package): '''Return a package's .desktop file. If given package is installed and has a single .desktop file, return the path to it, otherwise return None. ''' if package is None: return None desktopfile = None for line in packaging.get_files(package): if line.endswith('.desktop'): if desktopfile: return None # more than one else: desktopfile = line return desktopfile