summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPaul Pogonyshev <pogonyshev@gmx.net>2008-08-02 16:08:41 +0000
committerPaul Pogonyshev <paulp@src.gnome.org>2008-08-02 16:08:41 +0000
commita29cb1a1da1da419a220229d0161f476f420131e (patch)
treeb350800a6faaccf6305671952e6987ca1b4f6d55 /tests
parent714ca0037122ffc497215baa1a069a12bc67c2d0 (diff)
downloadpygtk-a29cb1a1da1da419a220229d0161f476f420131e.tar.gz
Bug 527212 – types with well-defined equality semantics are not properly
2008-08-02 Paul Pogonyshev <pogonyshev@gmx.net> Bug 527212 – types with well-defined equality semantics are not properly comparable * gtk/gdk.override (_wrap_pygdk_region_tp_richcompare): New function. * gtk/gdkcolor.override (_wrap_gdk_color_tp_richcompare): New function. * gtk/gdkrectangle.override (_wrap_gdk_rectangle_tp_richcompare): New function. * tests/test_conversion.py (testColorCreation): Move to thematic test file. * tests/Makefile.am: * tests/test_color.py: * tests/test_rectangle.py: Two new test files. 2008-08-02 Paul Pogonyshev <pogonyshev@gmx.net> Bug 527212 – types with well-defined equality semantics are not properly comparable * pygtk-gdkcolor.xml: Document new constructor option. Document proper comparison as of PyGTK 2.14. * pygtk-gdkregion.xml: Document proper comparison as of PyGTK 2.14. * pygtk-gdkrectangle.xml: Document proper comparison as of PyGTK 2.14. svn path=/trunk/; revision=3014
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am40
-rw-r--r--tests/test_color.py60
-rw-r--r--tests/test_conversion.py29
-rw-r--r--tests/test_rectangle.py28
4 files changed, 109 insertions, 48 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index e5756f4c..3ca928b9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,24 +1,26 @@
EXTRA_DIST = $(tests) common.py runtests.py testmodule.py leak.glade
-tests = \
- test_actiongroup.py \
- test_api.py \
- test_bin.py \
- test_button.py \
- test_container.py
- test_conversion.py \
- test_dialog.py \
- test_enum.py \
- test_gdk.py \
- test_glade.py \
- test_liststore.py
- test_pango.py \
- test_plug.py \
- test_radiobutton.py \
- test_style.py \
- test_textview.py \
- test_treeview.py \
- test_filechooserdialog.py
+tests = \
+ test_actiongroup.py \
+ test_api.py \
+ test_bin.py \
+ test_button.py \
+ test_color.py \
+ test_container.py \
+ test_conversion.py \
+ test_dialog.py \
+ test_enum.py \
+ test_filechooserdialog.py \
+ test_gdk.py \
+ test_glade.py \
+ test_liststore.py \
+ test_pango.py \
+ test_plug.py \
+ test_radiobutton.py \
+ test_rectangle.py \
+ test_style.py \
+ test_textview.py \
+ test_treeview.py
GTK_PY_FILES = __init__.py _lazyutils.py compat.py deprecation.py keysyms.py
diff --git a/tests/test_color.py b/tests/test_color.py
new file mode 100644
index 00000000..616c716e
--- /dev/null
+++ b/tests/test_color.py
@@ -0,0 +1,60 @@
+# -*- Mode: Python -*-
+
+import unittest
+
+from common import gtk
+
+
+class Tests(unittest.TestCase):
+
+ def test_constructor(self):
+ """ Test GdkColor creation """
+
+ c = gtk.gdk.Color(1, 2, 3)
+ self.assertEqual(c.red, 1)
+ self.assertEqual(c.green, 2)
+ self.assertEqual(c.blue, 3)
+
+ c = gtk.gdk.Color(pixel=0xffff)
+ self.assertEqual(c.pixel, 0xffff)
+
+ c = gtk.gdk.Color(pixel=0xffffL)
+ self.assertEqual(c.pixel, 0xffff)
+
+ c = gtk.gdk.Color(pixel=0xffffffffL)
+ self.assertEqual(c.pixel, 0xffffffffL)
+
+ c = gtk.gdk.Color('red')
+ self.assertEqual(c.red, 65535)
+ self.assertEqual(c.green, 0)
+ self.assertEqual(c.blue, 0)
+
+ c = gtk.gdk.Color('#ff0000')
+ self.assertEqual(c.red, 65535)
+ self.assertEqual(c.green, 0)
+ self.assertEqual(c.blue, 0)
+
+ self.assertRaises(TypeError, lambda: gtk.gdk.Color([]))
+
+ def test_equal(self):
+ self.assertEqual(gtk.gdk.Color(0, 0, 0), gtk.gdk.Color(0, 0, 0))
+ self.assertEqual(gtk.gdk.Color(100, 200, 300), gtk.gdk.Color(100, 200, 300))
+ self.assertEqual(gtk.gdk.Color('#abc'), gtk.gdk.Color('#aabbcc'))
+ self.assertEqual(gtk.gdk.Color('#100020003000'), gtk.gdk.Color(0x1000, 0x2000, 0x3000))
+
+ def test_not_equal(self):
+ self.assertNotEqual(gtk.gdk.Color('red'), gtk.gdk.Color('blue'))
+ self.assertNotEqual(gtk.gdk.Color(1, 0, 0), gtk.gdk.Color(0, 0, 0))
+ self.assertNotEqual(gtk.gdk.Color(0, 1, 0), gtk.gdk.Color(0, 0, 0))
+ self.assertNotEqual(gtk.gdk.Color(0, 0, 1), gtk.gdk.Color(0, 0, 0))
+
+ def test_non_hashable(self):
+ self.assertRaises(TypeError, lambda: hash(gtk.gdk.Color()))
+
+ def dict_key():
+ {} [gtk.gdk.Color()] = 'must raise'
+ self.assertRaises(TypeError, dict_key)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/test_conversion.py b/tests/test_conversion.py
index a63d7914..2642d11e 100644
--- a/tests/test_conversion.py
+++ b/tests/test_conversion.py
@@ -52,35 +52,6 @@ class Tests(unittest.TestCase):
self.assertEqual(entry.get_property('invisible_char'),
valid_value, valid_value)
- def testColorCreation(self):
- """ Test GdkColor creation """
-
- c = gtk.gdk.Color(1, 2, 3)
- self.assertEqual(c.red, 1)
- self.assertEqual(c.green, 2)
- self.assertEqual(c.blue, 3)
-
- c = gtk.gdk.Color(pixel=0xffff)
- self.assertEqual(c.pixel, 0xffff)
-
- c = gtk.gdk.Color(pixel=0xffffL)
- self.assertEqual(c.pixel, 0xffff)
-
- c = gtk.gdk.Color(pixel=0xffffffffL)
- self.assertEqual(c.pixel, 0xffffffffL)
-
- c = gtk.gdk.Color('red')
- self.assertEqual(c.red, 65535)
- self.assertEqual(c.green, 0)
- self.assertEqual(c.blue, 0)
-
- c = gtk.gdk.Color('#ff0000')
- self.assertEqual(c.red, 65535)
- self.assertEqual(c.green, 0)
- self.assertEqual(c.blue, 0)
-
- self.assertRaises(TypeError, lambda: gtk.gdk.Color([]))
-
def testUIntArg(self):
child = gtk.DrawingArea()
table = gtk.Table(2, 2, False)
diff --git a/tests/test_rectangle.py b/tests/test_rectangle.py
new file mode 100644
index 00000000..ab5b0646
--- /dev/null
+++ b/tests/test_rectangle.py
@@ -0,0 +1,28 @@
+# -*- Mode: Python -*-
+
+import unittest
+
+from common import gtk
+
+
+class Tests(unittest.TestCase):
+
+ def test_equal(self):
+ self.assertEqual(gtk.gdk.Rectangle(0, 0, 1, 1), gtk.gdk.Rectangle(0, 0, 1, 1))
+
+ def test_not_equal(self):
+ self.assertNotEqual(gtk.gdk.Rectangle(1, 0, 10, 10), gtk.gdk.Rectangle(0, 0, 10, 10))
+ self.assertNotEqual(gtk.gdk.Rectangle(0, 1, 10, 10), gtk.gdk.Rectangle(0, 0, 10, 10))
+ self.assertNotEqual(gtk.gdk.Rectangle(0, 0, 11, 10), gtk.gdk.Rectangle(0, 0, 10, 10))
+ self.assertNotEqual(gtk.gdk.Rectangle(0, 0, 10, 11), gtk.gdk.Rectangle(0, 0, 10, 10))
+
+ def test_non_hashable(self):
+ self.assertRaises(TypeError, lambda: hash(gtk.gdk.Rectangle()))
+
+ def dict_key():
+ {} [gtk.gdk.Rectangle()] = 'must raise'
+ self.assertRaises(TypeError, dict_key)
+
+
+if __name__ == '__main__':
+ unittest.main()