diff options
author | Edward Hervey <bilboed@bilboed.com> | 2007-10-09 14:27:18 +0000 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2007-10-09 14:27:18 +0000 |
commit | f6294fea7384fa00777b3e05c5f7f43dc667beb6 (patch) | |
tree | 18343d14dd6d1670928148507c201a0f5b28be06 | |
parent | 36d561c1f02aa01ff2c4063d968b0d64ead19a4e (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-- | ChangeLog | 11 | ||||
-rw-r--r-- | testsuite/common.py | 8 | ||||
-rw-r--r-- | testsuite/test_bin.py | 4 | ||||
-rw-r--r-- | testsuite/test_element.py | 8 | ||||
-rw-r--r-- | testsuite/test_ghostpad.py | 16 | ||||
-rw-r--r-- | testsuite/test_pad.py | 64 | ||||
-rw-r--r-- | testsuite/test_pipeline.py | 5 |
7 files changed, 71 insertions, 45 deletions
@@ -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): |