[pygi] Fix and complete overrides tests



commit 5106523a4b8378997a1e6cb0488398aa73e7d9d5
Author: Simon van der Linden <svdlinden src gnome org>
Date:   Wed Feb 3 20:29:55 2010 +0100

    Fix and complete overrides tests
    
    Those tests were missing in the last commit
    
    https://bugzilla.gnome.org/show_bug.cgi?id=602830

 gi/overrides/TestGI.py |   49 ++++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_gi.py       |    8 ++++++-
 2 files changed, 56 insertions(+), 1 deletions(-)
---
diff --git a/gi/overrides/TestGI.py b/gi/overrides/TestGI.py
new file mode 100644
index 0000000..6dff10f
--- /dev/null
+++ b/gi/overrides/TestGI.py
@@ -0,0 +1,49 @@
+from ..types import override
+from ..importer import modules
+
+TestGI = modules['TestGI']
+
+
+OVERRIDES_CONSTANT = 7
+
+
+class OverridesStruct(TestGI.OverridesStruct):
+
+    def __new__(cls, long_):
+        return TestGI.OverridesStruct.__new__(cls)
+
+    def __init__(self, long_):
+        TestGI.OverridesStruct.__init__(self)
+        self.long_ = long_
+
+    def method(self):
+        return TestGI.OverridesStruct.method(self) / 7
+
+OverridesStruct = override(OverridesStruct)
+
+
+class OverridesObject(TestGI.OverridesObject):
+
+    def __new__(cls, long_):
+        return TestGI.OverridesObject.__new__(cls)
+
+    def __init__(self, long_):
+        TestGI.OverridesObject.__init__(self)
+        # FIXME: doesn't work yet
+        #self.long_ = long_
+
+    @classmethod
+    def new(cls, long_):
+        self = TestGI.OverridesObject.new()
+        # FIXME: doesn't work yet
+        #self.long_ = long_
+        return self
+
+    def method(self):
+        return TestGI.OverridesObject.method(self) / 7
+
+OverridesObject = override(OverridesObject)
+
+
+__all__ = [OVERRIDES_CONSTANT, OverridesStruct, OverridesObject]
+
diff --git a/tests/test_gi.py b/tests/test_gi.py
index 36337ed..f6187cd 100644
--- a/tests/test_gi.py
+++ b/tests/test_gi.py
@@ -1366,6 +1366,8 @@ class TestOverrides(unittest.TestCase):
         # Test that the constructor has been overridden.
         struct = TestGI.OverridesStruct(42)
 
+        self.assertTrue(isinstance(struct, TestGI.OverridesStruct))
+
         # Test that the method has been overridden.
         self.assertEquals(6, struct.method())
 
@@ -1378,13 +1380,17 @@ class TestOverrides(unittest.TestCase):
 
         del struct
 
-    def test_struct(self):
+    def test_object(self):
         # Test that the constructor has been overridden.
         object_ = TestGI.OverridesObject(42)
 
+        self.assertTrue(isinstance(object_, TestGI.OverridesObject))
+
         # Test that the alternate constructor has been overridden.
         object_ = TestGI.OverridesObject.new(42)
 
+        self.assertTrue(isinstance(object_, TestGI.OverridesObject))
+
         # Test that the method has been overridden.
         self.assertEquals(6, object_.method())
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]