summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2007-10-09 14:27:18 +0000
committerEdward Hervey <bilboed@bilboed.com>2007-10-09 14:27:18 +0000
commitf6294fea7384fa00777b3e05c5f7f43dc667beb6 (patch)
tree18343d14dd6d1670928148507c201a0f5b28be06
parent36d561c1f02aa01ff2c4063d968b0d64ead19a4e (diff)
testsuite/: Fix unit tests for pygobject >= 2.13.0
Original commit message from CVS: * testsuite/common.py: * testsuite/test_bin.py: * testsuite/test_element.py: * testsuite/test_ghostpad.py: * testsuite/test_pad.py: * testsuite/test_pipeline.py: Fix unit tests for pygobject >= 2.13.0 See the pygobject bug #320428 for more information about the changes.
-rw-r--r--ChangeLog11
-rw-r--r--testsuite/common.py8
-rw-r--r--testsuite/test_bin.py4
-rw-r--r--testsuite/test_element.py8
-rw-r--r--testsuite/test_ghostpad.py16
-rw-r--r--testsuite/test_pad.py64
-rw-r--r--testsuite/test_pipeline.py5
7 files changed, 71 insertions, 45 deletions
diff --git a/ChangeLog b/ChangeLog
index aa7241a..9922461 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-10-09 Edward Hervey <bilboed@bilboed.com>
+
+ * testsuite/common.py:
+ * testsuite/test_bin.py:
+ * testsuite/test_element.py:
+ * testsuite/test_ghostpad.py:
+ * testsuite/test_pad.py:
+ * testsuite/test_pipeline.py:
+ Fix unit tests for pygobject >= 2.13.0
+ See the pygobject bug #320428 for more information about the changes.
+
2007-10-08 Sebastien Moutte <sebastien@moutte.net>
* gst/pygstminiobject.c: (pygstminiobject_dealloc):
diff --git a/testsuite/common.py b/testsuite/common.py
index 10f83cc..e85383c 100644
--- a/testsuite/common.py
+++ b/testsuite/common.py
@@ -42,6 +42,14 @@ try:
except:
print "WARNING: gobject doesn't have threads_init, no threadsafety"
+# Detect the version of pygobject
+# In pygobject >= 2.13.0 the refcounting of objects has changed.
+pgmaj,pgmin,pgmac = gobject.pygobject_version
+if pgmaj >= 2 and pgmin >= 13:
+ pygobject_2_13 = True
+else:
+ pygobject_2_13 = False
+
# Don't insert before .
# sys.path.insert(1, os.path.join('..'))
diff --git a/testsuite/test_bin.py b/testsuite/test_bin.py
index 288201f..d10ceac 100644
--- a/testsuite/test_bin.py
+++ b/testsuite/test_bin.py
@@ -21,7 +21,7 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-from common import gobject, gst, unittest, TestCase
+from common import gobject, gst, unittest, TestCase, pygobject_2_13
import sys
import time
@@ -62,7 +62,7 @@ class BinSubclassTest(TestCase):
def testStateChange(self):
bin = MyBin("mybin")
self.assertEquals(bin.__gstrefcount__, 1)
- self.assertEquals(sys.getrefcount(bin), 3)
+ self.assertEquals(sys.getrefcount(bin), pygobject_2_13 and 2 or 3)
self.assertEquals(bin.get_name(), "mybin")
self.assertEquals(bin.__gstrefcount__, 1)
diff --git a/testsuite/test_element.py b/testsuite/test_element.py
index d82a095..3c84e1a 100644
--- a/testsuite/test_element.py
+++ b/testsuite/test_element.py
@@ -20,7 +20,7 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-from common import gst, unittest, TestCase
+from common import gst, unittest, TestCase, pygobject_2_13
import sys
@@ -181,7 +181,7 @@ class QueryTest(TestCase):
self.element = self.pipeline.get_by_name('source')
self.assertEquals(self.pipeline.__gstrefcount__, 1)
self.assertEquals(self.element.__gstrefcount__, 2)
- self.assertEquals(sys.getrefcount(self.element), 3)
+ self.assertEquals(sys.getrefcount(self.element), pygobject_2_13 and 2 or 3)
def tearDown(self):
del self.pipeline
@@ -192,9 +192,9 @@ class QueryTest(TestCase):
gst.debug('querying fakesrc in FORMAT_BYTES')
res = self.element.query_position(gst.FORMAT_BYTES)
self.assertEquals(self.pipeline.__gstrefcount__, 1)
- self.assertEquals(sys.getrefcount(self.pipeline), 3)
+ self.assertEquals(sys.getrefcount(self.pipeline), pygobject_2_13 and 2 or 3)
self.assertEquals(self.element.__gstrefcount__, 2)
- self.assertEquals(sys.getrefcount(self.element), 3)
+ self.assertEquals(sys.getrefcount(self.element), pygobject_2_13 and 2 or 3)
assert res
assert res[0] == 0
self.assertRaises(gst.QueryError, self.element.query_position,
diff --git a/testsuite/test_ghostpad.py b/testsuite/test_ghostpad.py
index d23226e..21104c2 100644
--- a/testsuite/test_ghostpad.py
+++ b/testsuite/test_ghostpad.py
@@ -20,7 +20,7 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-from common import gst, unittest, TestCase
+from common import gst, unittest, TestCase, pygobject_2_13
import sys
import gc
@@ -57,24 +57,24 @@ class PipeTest(TestCase):
TestCase.setUp(self)
self.pipeline = gst.Pipeline()
self.assertEquals(self.pipeline.__gstrefcount__, 1)
- self.assertEquals(sys.getrefcount(self.pipeline), 3)
+ self.assertEquals(sys.getrefcount(self.pipeline), pygobject_2_13 and 2 or 3)
self.src = SrcBin()
self.src.prepare()
self.sink = SinkBin()
self.sink.prepare()
self.assertEquals(self.src.__gstrefcount__, 1)
- self.assertEquals(sys.getrefcount(self.src), 3)
+ self.assertEquals(sys.getrefcount(self.src), pygobject_2_13 and 2 or 3)
self.assertEquals(self.sink.__gstrefcount__, 1)
- self.assertEquals(sys.getrefcount(self.sink), 3)
+ self.assertEquals(sys.getrefcount(self.sink), pygobject_2_13 and 2 or 3)
gst.info("end of SetUp")
def tearDown(self):
gst.info("tearDown")
self.assertTrue (self.pipeline.__gstrefcount__ >= 1 and self.pipeline.__gstrefcount__ <= 2)
- self.assertEquals(sys.getrefcount(self.pipeline), 3)
+ self.assertEquals(sys.getrefcount(self.pipeline), pygobject_2_13 and 2 or 3)
self.assertEquals(self.src.__gstrefcount__, 2)
- self.assertEquals(sys.getrefcount(self.src), 3)
+ self.assertEquals(sys.getrefcount(self.src), pygobject_2_13 and 2 or 3)
self.assertEquals(self.sink.__gstrefcount__, 2)
self.assertEquals(sys.getrefcount(self.sink), 3)
gst.debug('deleting pipeline')
@@ -83,8 +83,8 @@ class PipeTest(TestCase):
self.assertEquals(self.src.__gstrefcount__, 1) # parent gone
self.assertEquals(self.sink.__gstrefcount__, 1) # parent gone
- self.assertEquals(sys.getrefcount(self.src), 3)
- self.assertEquals(sys.getrefcount(self.sink), 3)
+ self.assertEquals(sys.getrefcount(self.src), pygobject_2_13 and 2 or 3)
+ self.assertEquals(sys.getrefcount(self.sink), pygobject_2_13 and 2 or 3)
gst.debug('deleting src')
del self.src
self.gccollect()
diff --git a/testsuite/test_pad.py b/testsuite/test_pad.py
index 9563aa6..2a19e7d 100644
--- a/testsuite/test_pad.py
+++ b/testsuite/test_pad.py
@@ -20,7 +20,7 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-from common import gst, unittest, TestCase
+from common import gst, unittest, TestCase, pygobject_2_13
import sys
import time
@@ -30,7 +30,7 @@ class PadTemplateTest(TestCase):
template = gst.PadTemplate("template", gst.PAD_SINK,
gst.PAD_ALWAYS, gst.caps_from_string("audio/x-raw-int"))
self.failUnless(template)
- self.assertEquals(sys.getrefcount(template), 3)
+ self.assertEquals(sys.getrefcount(template), pygobject_2_13 and 2 or 3)
#self.assertEquals(template.__gstrefcount__, 1)
class PadPushUnlinkedTest(TestCase):
@@ -40,10 +40,10 @@ class PadPushUnlinkedTest(TestCase):
self.sink = gst.Pad("sink", gst.PAD_SINK)
def tearDown(self):
- self.assertEquals(sys.getrefcount(self.src), 3)
+ self.assertEquals(sys.getrefcount(self.src), pygobject_2_13 and 2 or 3)
self.assertEquals(self.src.__gstrefcount__, 1)
del self.src
- self.assertEquals(sys.getrefcount(self.sink), 3)
+ self.assertEquals(sys.getrefcount(self.sink), pygobject_2_13 and 2 or 3)
self.assertEquals(self.sink.__gstrefcount__, 1)
del self.sink
TestCase.tearDown(self)
@@ -90,11 +90,11 @@ class PadPushLinkedTest(TestCase):
self.buffers = []
def tearDown(self):
- self.assertEquals(sys.getrefcount(self.src), 3)
+ self.assertEquals(sys.getrefcount(self.src), pygobject_2_13 and 2 or 3)
self.assertEquals(self.src.__gstrefcount__, 1)
self.src.set_caps(None)
del self.src
- self.assertEquals(sys.getrefcount(self.sink), 3)
+ self.assertEquals(sys.getrefcount(self.sink), pygobject_2_13 and 2 or 3)
self.assertEquals(self.sink.__gstrefcount__, 1)
self.sink.set_caps(None)
del self.sink
@@ -171,11 +171,11 @@ class PadPushEventLinkedTest(TestCase):
self.events = []
def tearDown(self):
- self.assertEquals(sys.getrefcount(self.src), 3)
+ self.assertEquals(sys.getrefcount(self.src), pygobject_2_13 and 2 or 3)
self.assertEquals(self.src.__gstrefcount__, 1)
self.src.set_caps(None)
del self.src
- self.assertEquals(sys.getrefcount(self.sink), 3)
+ self.assertEquals(sys.getrefcount(self.sink), pygobject_2_13 and 2 or 3)
self.assertEquals(self.sink.__gstrefcount__, 1)
self.sink.set_caps(None)
del self.sink
@@ -269,11 +269,11 @@ class PadPushProbeLinkTest(TestCase):
self.buffers = []
def tearDown(self):
- self.assertEquals(sys.getrefcount(self.src), 3)
+ self.assertEquals(sys.getrefcount(self.src), pygobject_2_13 and 2 or 3)
self.assertEquals(self.src.__gstrefcount__, 1)
self.src.set_caps(None)
del self.src
- self.assertEquals(sys.getrefcount(self.sink), 3)
+ self.assertEquals(sys.getrefcount(self.sink), pygobject_2_13 and 2 or 3)
self.assertEquals(self.sink.__gstrefcount__, 1)
self.sink.set_caps(None)
del self.sink
@@ -310,7 +310,7 @@ class PadTest(TestCase):
gst.debug('creating pad with name src')
pad = gst.Pad("src", gst.PAD_SRC)
self.failUnless(pad)
- self.assertEquals(sys.getrefcount(pad), 3)
+ self.assertEquals(sys.getrefcount(pad), pygobject_2_13 and 2 or 3)
self.assertEquals(pad.__gstrefcount__, 1)
gst.debug('creating pad with no name')
@@ -347,44 +347,44 @@ class PadProbePipeTest(TestCase):
TestCase.setUp(self)
self.pipeline = gst.Pipeline()
self.assertEquals(self.pipeline.__gstrefcount__, 1)
- self.assertEquals(sys.getrefcount(self.pipeline), 3)
+ self.assertEquals(sys.getrefcount(self.pipeline), pygobject_2_13 and 2 or 3)
self.fakesrc = gst.element_factory_make('fakesrc')
self.fakesink = gst.element_factory_make('fakesink')
self.assertEquals(self.fakesrc.__gstrefcount__, 1)
- self.assertEquals(sys.getrefcount(self.fakesrc), 3)
+ self.assertEquals(sys.getrefcount(self.fakesrc), pygobject_2_13 and 2 or 3)
self.pipeline.add(self.fakesrc, self.fakesink)
self.assertEquals(self.fakesrc.__gstrefcount__, 2) # added
- self.assertEquals(sys.getrefcount(self.fakesrc), 3)
+ self.assertEquals(sys.getrefcount(self.fakesrc), pygobject_2_13 and 2 or 3)
self.assertEquals(self.fakesink.__gstrefcount__, 2) # added
- self.assertEquals(sys.getrefcount(self.fakesink), 3)
+ self.assertEquals(sys.getrefcount(self.fakesink), pygobject_2_13 and 2 or 3)
self.fakesrc.link(self.fakesink)
self.assertEquals(self.pipeline.__gstrefcount__, 1)
- self.assertEquals(sys.getrefcount(self.pipeline), 3)
+ self.assertEquals(sys.getrefcount(self.pipeline), pygobject_2_13 and 2 or 3)
self.assertEquals(self.fakesrc.__gstrefcount__, 2)
- self.assertEquals(sys.getrefcount(self.fakesrc), 3)
+ self.assertEquals(sys.getrefcount(self.fakesrc), pygobject_2_13 and 2 or 3)
self.assertEquals(self.fakesink.__gstrefcount__, 2)
- self.assertEquals(sys.getrefcount(self.fakesink), 3)
+ self.assertEquals(sys.getrefcount(self.fakesink), pygobject_2_13 and 2 or 3)
def tearDown(self):
# Refcount must be either 1 or 2, to allow for a possibly still running
# state-recalculation thread
self.assertTrue (self.pipeline.__gstrefcount__ >= 1 and self.pipeline.__gstrefcount__ <= 2)
- self.assertEquals(sys.getrefcount(self.pipeline), 3)
+ self.assertEquals(sys.getrefcount(self.pipeline), pygobject_2_13 and 2 or 3)
self.assertEquals(self.fakesrc.__gstrefcount__, 2)
- self.assertEquals(sys.getrefcount(self.fakesrc), 3)
+ self.assertEquals(sys.getrefcount(self.fakesrc), pygobject_2_13 and 2 or 3)
gst.debug('deleting pipeline')
del self.pipeline
self.gccollect()
self.assertEquals(self.fakesrc.__gstrefcount__, 1) # parent gone
self.assertEquals(self.fakesink.__gstrefcount__, 1) # parent gone
- self.assertEquals(sys.getrefcount(self.fakesrc), 3)
- self.assertEquals(sys.getrefcount(self.fakesink), 3)
+ self.assertEquals(sys.getrefcount(self.fakesrc), pygobject_2_13 and 2 or 3)
+ self.assertEquals(sys.getrefcount(self.fakesink), pygobject_2_13 and 2 or 3)
gst.debug('deleting fakesrc')
del self.fakesrc
self.gccollect()
@@ -479,32 +479,38 @@ class PadRefCountTest(TestCase):
def testAddPad(self):
# add a pad to an element
e = gst.element_factory_make('fakesrc')
- self.assertEquals(sys.getrefcount(e), 3)
+ self.assertEquals(sys.getrefcount(e), pygobject_2_13 and 2 or 3)
self.assertEquals(e.__gstrefcount__, 1)
gst.debug('creating pad with name mypad')
pad = gst.Pad("mypad", gst.PAD_SRC)
self.failUnless(pad)
- self.assertEquals(sys.getrefcount(pad), 3)
+ self.assertEquals(sys.getrefcount(pad), pygobject_2_13 and 2 or 3)
self.assertEquals(pad.__gstrefcount__, 1)
gst.debug('adding pad to element')
e.add_pad(pad)
- self.assertEquals(sys.getrefcount(e), 3)
+ self.assertEquals(sys.getrefcount(e), pygobject_2_13 and 2 or 3)
self.assertEquals(e.__gstrefcount__, 1)
- self.assertEquals(sys.getrefcount(pad), 3)
+ self.assertEquals(sys.getrefcount(pad), pygobject_2_13 and 2 or 3)
self.assertEquals(pad.__gstrefcount__, 2) # added to element
gst.debug('deleting element and collecting')
self.gccollect()
del e
- self.assertEquals(self.gccollect(), 1) # collected the element
- self.assertEquals(sys.getrefcount(pad), 3)
+ if not pygobject_2_13:
+ # the element will be collected at 'del e' if we're using
+ # pygobject >= 2.13.0
+ self.assertEquals(self.gccollect(), 1) # collected the element
+ self.assertEquals(sys.getrefcount(pad), pygobject_2_13 and 2 or 3)
self.assertEquals(pad.__gstrefcount__, 1) # removed from element
gst.debug('deleting pad and collecting')
del pad
- self.assertEquals(self.gccollect(), 1) # collected the pad
+ if not pygobject_2_13:
+ # the pad will be collected at 'del pad' if we're using
+ # pygobject >= 2.13.0
+ self.assertEquals(self.gccollect(), 1) # collected the pad
gst.debug('going into teardown')
if __name__ == "__main__":
diff --git a/testsuite/test_pipeline.py b/testsuite/test_pipeline.py
index b2b7ddc..ec6afae 100644
--- a/testsuite/test_pipeline.py
+++ b/testsuite/test_pipeline.py
@@ -22,7 +22,7 @@
import time
-from common import gst, unittest, TestCase
+from common import gst, unittest, TestCase, pygobject_2_13
import gobject
@@ -83,7 +83,8 @@ class Bus(TestCase):
self.assertEquals(bus.__gstrefcount__, 2)
del pipeline
- self.failUnless(self.gccollect())
+ if not pygobject_2_13:
+ self.failUnless(self.gccollect())
self.assertEquals(bus.__gstrefcount__, 1)
class PipelineAndBus(TestCase):