From 2f3f34b7af0105d274a536a68d73b669f634ceff Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Wed, 1 Feb 2006 11:14:20 +0000 Subject: [PATCH] testsuite/test_element.py: add another link test Original commit message from CVS: 2006-02-01 Thomas Vander Stichele * testsuite/test_element.py: add another link test --- ChangeLog | 5 +++++ common | 2 +- testsuite/test_element.py | 38 +++++++++++++++++++++++++++++++++++++- 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 10cdd76..a248a6b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-02-01 Thomas Vander Stichele + + * testsuite/test_element.py: + add another link test + 2006-01-30 Edward Hervey * configure.ac: diff --git a/common b/common index bc43253..0b93085 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit bc4325349e8d0ec90aa5c5e74566880cc2e82527 +Subproject commit 0b93085188e83fe678ec5ded2823cd7c24dfa843 diff --git a/testsuite/test_element.py b/testsuite/test_element.py index a33fa52..d82a095 100644 --- a/testsuite/test_element.py +++ b/testsuite/test_element.py @@ -222,11 +222,47 @@ class DebugTest(TestCase): e.set_property("name", "testelement") e.break_it_down() -class LinkNoPadsTest(TestCase): +class LinkTest(TestCase): def testLinkNoPads(self): src = gst.Bin() sink = gst.Bin() self.assertRaises(gst.LinkError, src.link, sink) + def testLink(self): + src = gst.element_factory_make('fakesrc') + sink = gst.element_factory_make('fakesink') + self.failUnless(src.link(sink)) + # FIXME: this unlink leaks, no idea why + # src.unlink(sink) + # print src.__gstrefcount__ + + def testLinkPads(self): + src = gst.element_factory_make('fakesrc') + sink = gst.element_factory_make('fakesink') + # print src.__gstrefcount__ + self.failUnless(src.link_pads("src", sink, "sink")) + src.unlink_pads("src", sink, "sink") + + def testLinkFiltered(self): + # a filtered link uses capsfilter and thus needs a bin + bin = gst.Bin() + src = gst.element_factory_make('fakesrc') + sink = gst.element_factory_make('fakesink') + bin.add(src, sink) + caps = gst.caps_from_string("audio/x-raw-int") + + self.failUnless(src.link(sink, caps)) + + # DANGER WILL. src is not actually connected to sink, since + # there's a capsfilter in the way. What a leaky abstraction. + # FIXME + # src.unlink(sink) + + # instead, mess with pads directly + pad = src.get_pad('src') + pad.unlink(pad.get_peer()) + pad = sink.get_pad('sink') + pad.get_peer().unlink(pad) + if __name__ == "__main__": unittest.main() -- 2.7.4