Merge lp:~mvo/software-center/fix-gmenu-searcher into lp:software-center

Proposed by Michael Vogt
Status: Merged
Merged at revision: 2982
Proposed branch: lp:~mvo/software-center/fix-gmenu-searcher
Merge into: lp:software-center
Diff against target: 75 lines (+25/-5)
3 files modified
softwarecenter/db/pkginfo_impl/aptcache.py (+1/-0)
softwarecenter/ui/gtk3/gmenusearch.py (+8/-2)
test/test_where_is_it.py (+16/-3)
To merge this branch: bzr merge lp:~mvo/software-center/fix-gmenu-searcher
Reviewer Review Type Date Requested Status
Gary Lasker (community) Approve
Review via email: mp+102461@code.launchpad.net

Description of the change

This branch fixes the menu searcher after the app-install-data-ubuntu file layout changed to "pkgname:filename.desktop". It also adds a regression test.

To test do not log into unity (e.g. gnome-panel, xfce, gnome-shell) and run "software-center gedit".
In current trunk you will see no indication where it is and with this branch the information is
there in the details page directly under the "Installed" label.

To post a comment you must log in.
2983. By Michael Vogt

pep8 fixes

Revision history for this message
Gary Lasker (gary-lasker) wrote :

Thanks mvo!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'softwarecenter/db/pkginfo_impl/aptcache.py'
--- softwarecenter/db/pkginfo_impl/aptcache.py 2012-04-16 09:22:12 +0000
+++ softwarecenter/db/pkginfo_impl/aptcache.py 2012-04-18 08:54:18 +0000
@@ -234,6 +234,7 @@
234 def open(self):234 def open(self):
235 """ (re)open the cache, this sends cache-invalid, cache-ready signals235 """ (re)open the cache, this sends cache-invalid, cache-ready signals
236 """236 """
237 LOG.info("aptcache.open()")
237 self._ready = False238 self._ready = False
238 self.emit("cache-invalid")239 self.emit("cache-invalid")
239 from softwarecenter.utils import ExecutionTime240 from softwarecenter.utils import ExecutionTime
240241
=== modified file 'softwarecenter/ui/gtk3/gmenusearch.py'
--- softwarecenter/ui/gtk3/gmenusearch.py 2012-03-15 09:32:18 +0000
+++ softwarecenter/ui/gtk3/gmenusearch.py 2012-04-18 08:54:18 +0000
@@ -82,8 +82,14 @@
82 root = tree.get_root_directory()82 root = tree.get_root_directory()
83 self._search_gmenu_dir([root],83 self._search_gmenu_dir([root],
84 os.path.basename(desktop_file))84 os.path.basename(desktop_file))
85 if self._found:85 # retry search for app-install-data desktop files
86 return self._found86 if not self._found and ":" in os.path.basename(desktop_file):
87 # the desktop files in app-install-data have a layout
88 # like "pkg:file.desktop" so we need to take that into
89 # account when searching
90 desktop_file = os.path.basename(desktop_file).split(":")[1]
91 self._search_gmenu_dir([root], desktop_file)
92 return self._found
8793
8894
89# these are the old static bindinds that are no longer required95# these are the old static bindinds that are no longer required
9096
=== modified file 'test/test_where_is_it.py'
--- test/test_where_is_it.py 2012-01-16 14:42:49 +0000
+++ test/test_where_is_it.py 2012-04-18 08:54:18 +0000
@@ -1,5 +1,6 @@
1#!/usr/bin/python1#!/usr/bin/python
22
3import logging
3import os4import os
4import unittest5import unittest
56
@@ -10,7 +11,7 @@
10from softwarecenter.db.pkginfo import get_pkg_info11from softwarecenter.db.pkginfo import get_pkg_info
11from softwarecenter.db.database import StoreDatabase12from softwarecenter.db.database import StoreDatabase
12from softwarecenter.db.application import Application13from softwarecenter.db.application import Application
1314from softwarecenter.enums import PkgStates
1415
15class TestWhereIsit(unittest.TestCase):16class TestWhereIsit(unittest.TestCase):
16 """ tests the "where is it in the menu" code """17 """ tests the "where is it in the menu" code """
@@ -74,8 +75,20 @@
74 self.assertEqual(found[1].get_icon().get_names()[0], 75 self.assertEqual(found[1].get_icon().get_names()[0],
75 "applications-utilities")76 "applications-utilities")
76 77
78 def test_where_is_it_real_system(self):
79 app = Application("", "gedit")
80 details = app.get_details(self.db)
81 if details.pkg_state != PkgStates.INSTALLED:
82 logging.warn("gedit not installed, skipping real menu test")
83 self.skipTest("gedit not installed")
84 return
85 self.assertEqual(details.desktop_file,
86 "/usr/share/app-install/desktop/gedit:gedit.desktop")
87 # search the *real* menu
88 searcher = GMenuSearcher()
89 found = searcher.get_main_menu_path(details.desktop_file)
90 self.assertNotEqual(found, None)
7791
78if __name__ == "__main__":92if __name__ == "__main__":
79 import logging93 #logging.basicConfig(level=logging.DEBUG)
80 logging.basicConfig(level=logging.DEBUG)
81 unittest.main()94 unittest.main()

Subscribers

People subscribed via source and target branches