10
sys.path.insert(0, "..")
12
from softwarecenter.app import SoftwareCenterApp
13
from softwarecenter.enums import XAPIAN_BASE_PATH
14
from softwarecenter.view.appview import AppStore
16
# see https://wiki.ubuntu.com/SoftwareCenter/SearchTesting
18
class SCGUITest(unittest.TestCase):
21
while gtk.events_pending():
25
apt.apt_pkg.config.set("Dir::log::history", "/tmp")
26
apt.apt_pkg.config.set("Dir::state::lists", "/tmp")
27
self.app = SoftwareCenterApp("../data", XAPIAN_BASE_PATH)
28
self.app.window_main.show_all()
33
def _run_search(self, search_text):
34
logging.info("_run_search", search_text)
35
self.app.available_pane.searchentry.delete_text(0, -1)
36
self.app.available_pane.searchentry.insert_text(search_text)
40
return self.app.available_pane.app_view.get_model()
42
def _debug(self, model, needle):
43
print "Excpected '%s' first, but search results in model: " % needle
45
print " %s" % it[AppStore.COL_PKGNAME]
47
def assertFirstPkgInModel(self, model, needle):
48
#self.assertEqual(model[0][AppStore.COL_PKGNAME],
49
# needle, self._debug(model, needle))
50
self._debug(model, needle)
52
def test_search_per_spec(self):
53
# assert we find the right package
54
model = self._run_search("bzr-gtk")
55
self.assertFirstPkgInModel(model, "bzr-gtk")
56
# try dive into python
57
model = self._run_search("dive into python")
58
self.assertFirstPkgInModel(model, "diveintopython")
60
model = self._run_search("flash")
61
self.assertFirstPkgInModel(model, "adobe-flashplugin")
63
model = self._run_search("genealogy")
64
self.assertFirstPkgInModel(model, "gramps")
66
model = self._run_search("gnome-session")
67
self.assertFirstPkgInModel(model, "gnome-session")
69
model = self._run_search("linux-image")
70
self.assertFirstPkgInModel(model, "linux-image")
72
model = self._run_search("mythtv")
73
self.assertFirstPkgInModel(model, "mythtv")
75
model = self._run_search("openoffice")
76
self.assertFirstPkgInModel(model, "openoffice.org")
78
model = self._run_search("pinball")
79
self.assertFirstPkgInModel(model, "pinball")
81
if __name__ == "__main__":