diff options
author | Simon Poirier <simpoir@gmail.com> | 2009-07-11 21:39:46 (GMT) |
---|---|---|
committer | Simon Poirier <simpoir@gmail.com> | 2009-07-11 22:00:30 (GMT) |
commit | 0c3f127c86af818d260966d2292b199757087157 (patch) | |
tree | 62cf941aef5bde83641a17ec492e03d0ecb17386 /src/sugar/tutorius/tests/gtkutilstests.py | |
parent | 9fafb49af210e956d43d6a00106558d1a00d13df (diff) |
repackage
Diffstat (limited to 'src/sugar/tutorius/tests/gtkutilstests.py')
-rw-r--r-- | src/sugar/tutorius/tests/gtkutilstests.py | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/src/sugar/tutorius/tests/gtkutilstests.py b/src/sugar/tutorius/tests/gtkutilstests.py deleted file mode 100644 index 41634ae..0000000 --- a/src/sugar/tutorius/tests/gtkutilstests.py +++ /dev/null @@ -1,211 +0,0 @@ -# Copyright (C) 2009, Tutorius.org -# Copyright (C) 2009, Simon Poirier <simpoir@gmail.com> -# Copyright (C) 2009, Vincent Vinet <vince.vinet@gmail.com> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -""" -Gtk Utils Tests - -This module contains all the tests that pertain to the usage of the Tutorius -gtkutils -""" - -import unittest - -import logging -import gtk, gobject -from sugar.tutorius.gtkutils import find_widget, register_signals_numbered, register_signals, get_children - -class SignalCatcher(object): - """Test class that store arguments received on it's callback method. - Useful for testing callbacks""" - def __init__(self): - """Constructor""" - self.data = None - - def callback(self, *args): - """Callback function, stores argument list in self.data""" - self.data = args - -def disconnect_handlers(hlist): - """Disconnect handles in handler list. hlist must be a list of - two-tuples (widget, handler_id)""" - for widget, handler in hlist: - try: - widget.handler_disconnect(handler) - except: - pass - -class GtkUtilsTests(unittest.TestCase): - def __init__(self,*args): - unittest.TestCase.__init__(self,*args) - self.widgets = {} - self.top = None - - def setUp(self): - #create hierarchy - self.top = gtk.Window(type=gtk.WINDOW_TOPLEVEL) - self.top.set_name("Top") - self.widgets["top"] = {"named":"Top","numbered":"0","widget":self.top} - - hbox = gtk.HBox() - self.top.add(hbox) - hbox.show() - self.widgets["hbox0"] = {"name":"Top.GtkHBox","numbered":"0.0","widget":hbox} - - btn1 = gtk.Button() - btn1.set_name("Button1") - hbox.pack_start(btn1) - btn1.show() - self.widgets["btn1"] = {"name":"Top.GtkHBox.Button1","numbered":"0.0.0","widget":btn1} - - btn2 = gtk.Button() - btn2.set_name("Button2") - hbox.pack_start(btn2) - btn2.show() - self.widgets["btn2"] = {"name":"Top.GtkHBox.Button2","numbered":"0.0.1","widget":btn2} - - vbox = gtk.VBox() - vbox.set_name("VBox1") - hbox.pack_start(vbox) - hbox.show() - self.widgets["vbox0"] = {"name":"Top.GtkHBox.VBox1","numbered":"0.0.2","widget":vbox} - - btn3 = gtk.Button() - btn3.set_name("Button3") - vbox.pack_start(btn3) - btn3.show() - self.widgets["btn3"] = {"name":"Top.GtkHBox.VBox1.Button3","numbered":"0.0.2.0","widget":btn3} - - btn4 = gtk.Button() - vbox.pack_start(btn4) - btn4.show() - self.widgets["btn4"] = {"name":"Top.GtkHBox.VBox1.GtkButton","numbered":"0.0.2.1","widget":btn4} - - def tearDown(self): - #destroy hierarchy - self.top.destroy() - self.top = None - self.widgets = {} - - def test_named(self): - #def register_signals(target, handler, prefix=None, max_depth=None): - s=SignalCatcher() - - #Test 0 depth - handler_list = register_signals(self.top, s.callback, max_depth=0) - - #remove duplicates in widget list - widget_list = dict.fromkeys([w for w, h in handler_list]).keys() - - assert len(widget_list) == 1, "register_signals should not have recursed (%d objects registered)" % len(widget_list) - - assert widget_list[0] == self.top, "register_signals should have gotten only the top" - - disconnect_handlers(handler_list) - - #Test 2 depth - handler_list = register_signals(self.top, s.callback, max_depth=2) - - #remove duplicates in widget list - widget_list = dict.fromkeys([w for w, h in handler_list]).keys() - - assert len(widget_list) == 5, "expected %d objects (got %d)" % (len(widget_list), 5) - - disconnect_handlers(handler_list) - - #Test Infinite depth - handler_list = register_signals(self.top, s.callback, max_depth=None) - - #remove duplicates in widget list - widget_list = dict.fromkeys([w for w, h in handler_list]).keys() - - assert len(widget_list) == 7, "expected %d objects (got %d)" % (len(widget_list), 7) - - disconnect_handlers(handler_list) - - - def test_numbered(self): - s=SignalCatcher() - #def register_signals_numbered(target, handler, prefix="0", max_depth=None): - - #Test 0 depth - handler_list = register_signals_numbered(self.top, s.callback, max_depth=0) - - #remove duplicates in widget list - widget_list = dict.fromkeys([w for w, h in handler_list]).keys() - - assert len(widget_list) == 1, "register_signals should not have recursed (%d objects registered)" % len(widget_list) - - assert widget_list[0] == self.top, "register_signals should have gotten only the top" - - disconnect_handlers(handler_list) - - #Test 1 depth - handler_list = register_signals_numbered(self.top, s.callback, max_depth=1) - - #remove duplicates in widget list - widget_list = dict.fromkeys([w for w, h in handler_list]).keys() - - assert len(widget_list) == 2, "expected %d objects (got %d)" % (len(widget_list), 2) - - disconnect_handlers(handler_list) - - #Test Infinite depth - handler_list = register_signals_numbered(self.top, s.callback, max_depth=None) - - #remove duplicates in widget list - widget_list = dict.fromkeys([w for w, h in handler_list]).keys() - - assert len(widget_list) == 7, "expected %d objects (got %d)" % (len(widget_list), 7) - - disconnect_handlers(handler_list) - - - def test_find_widget(self): - #Test individual values in the defined widgets - for widget in self.widgets.values(): - f = find_widget(self.top, widget["numbered"]) - assert f is widget["widget"], "Widget %s found with path %s, expected %s" % (f, widget["numbered"], widget["widget"]) - - #Test out of index - f = find_widget(self.top, "0.99.1.2") - assert f is self.top, "Should have returned top widget" - - def test_register_args_numbered(self): - #Need to check the signal catcher and stuff... grreat - while gtk.events_pending(): - gtk.main_iteration(block=False) - - - def test_register_args_normal(self): - #Need to check the signal catcher and stuff... grreat - while gtk.events_pending(): - gtk.main_iteration(block=False) - - def test_notwidget(self): - """Test the get_children function""" - o = object() - res = get_children(o) - - assert len(res) == 0, "object has no children" - - top_children = get_children(self.top) - expected = [self.widgets["hbox0"]["widget"],] - assert top_children == expected, "expected %s for top's children, got %s" % (str(expected),str(top_children)) - -if __name__ == "__main__": - unittest.main() - |