3
from gi.repository import Gtk, GObject
7
from testutils import setup_test_env
3
from tests.utils import (
9
from tests.gtk3.windows import get_test_window_installedpane
12
12
class TestInstalledPane(unittest.TestCase):
14
14
def test_installedpane(self):
15
from softwarecenter.ui.gtk3.panes.installedpane import get_test_window
16
win = get_test_window()
15
win = get_test_window_installedpane()
16
self.addCleanup(win.destroy)
17
17
installedpane = win.get_data("pane")
18
do_events_with_sleep()
19
19
# safe initial show/hide label for later
20
20
initial_actionbar_label = installedpane.action_bar._label_text
22
22
installedpane.on_search_terms_changed(None, "foo")
23
do_events_with_sleep()
24
24
model = installedpane.app_view.tree_view.get_model()
25
25
# FIXME: len(model) *only* counts the size of the top level
26
# (category) hits. thats still ok, as non-apps will
26
# (category) hits. thats still ok, as non-apps will
27
27
# add the "system" category
28
28
len_only_apps = len(model)
29
29
# set to show nonapps
30
30
installedpane._show_nonapp_pkgs()
31
do_events_with_sleep()
32
32
len_with_nonapps = len(model)
33
33
self.assertTrue(len_with_nonapps > len_only_apps)
34
34
# set to hide nonapps again and ensure the size matches the
36
36
installedpane._hide_nonapp_pkgs()
37
do_events_with_sleep()
38
38
self.assertEqual(len(model), len_only_apps)
39
39
# clear sarch and ensure we get a expanded size again
40
40
installedpane.on_search_terms_changed(None, "")
41
do_events_with_sleep()
42
42
all_apps = len(model)
43
43
self.assertTrue(all_apps > len_only_apps)
44
44
# ensure we have the same show/hide info as initially
45
45
self.assertEqual(initial_actionbar_label,
46
46
installedpane.action_bar._label_text)
47
GObject.timeout_add(TIMEOUT, lambda: win.destroy())
53
while Gtk.events_pending():
57
49
if __name__ == "__main__":
59
logging.basicConfig(level=logging.INFO)