2005-09-01 10:36:07 +00:00
|
|
|
# -*- Mode: Python -*-
|
|
|
|
# vi:si:et:sw=4:sts=4:ts=4
|
2004-06-21 09:26:59 +00:00
|
|
|
#
|
2005-09-01 10:36:07 +00:00
|
|
|
# gst-python - Python bindings for GStreamer
|
|
|
|
# Copyright (C) 2002 David I. Lehn
|
|
|
|
# Copyright (C) 2004 Johan Dahlin
|
|
|
|
# Copyright (C) 2005 Edward Hervey
|
|
|
|
#
|
|
|
|
# This library is free software; you can redistribute it and/or
|
|
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
|
|
# License as published by the Free Software Foundation; either
|
|
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
|
|
#
|
|
|
|
# This library is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
# Lesser General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
|
|
# License along with this library; if not, write to the Free Software
|
|
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
2004-06-21 09:26:59 +00:00
|
|
|
|
2005-09-28 14:20:03 +00:00
|
|
|
from common import gst, unittest, TestCase
|
2004-06-21 09:26:59 +00:00
|
|
|
|
2005-09-28 12:17:29 +00:00
|
|
|
import sys
|
|
|
|
|
2005-09-12 17:06:09 +00:00
|
|
|
# since I can't subclass gst.Element for some reason, I use a bin here
|
|
|
|
# it don't matter to Jesus
|
|
|
|
class TestElement(gst.Bin):
|
|
|
|
def break_it_down(self):
|
|
|
|
self.debug('Hammer Time')
|
|
|
|
|
2005-09-28 15:48:10 +00:00
|
|
|
class ElementTest(TestCase):
|
2004-06-21 09:26:59 +00:00
|
|
|
name = 'fakesink'
|
|
|
|
alias = 'sink'
|
2005-09-28 15:48:10 +00:00
|
|
|
|
2004-06-21 09:26:59 +00:00
|
|
|
def testGoodConstructor(self):
|
|
|
|
element = gst.element_factory_make(self.name, self.alias)
|
|
|
|
assert element is not None, 'element is None'
|
|
|
|
assert isinstance(element, gst.Element)
|
|
|
|
assert element.get_name() == self.alias
|
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
## FIXME : Make a new test for state changes, using bus signals
|
|
|
|
|
|
|
|
## class FakeSinkTest(ElementTest):
|
|
|
|
## FAKESINK_STATE_ERROR_NONE = "0"
|
|
|
|
## FAKESINK_STATE_ERROR_NULL_READY, = "1"
|
|
|
|
## FAKESINK_STATE_ERROR_READY_PAUSED, = "2"
|
|
|
|
## FAKESINK_STATE_ERROR_PAUSED_PLAYING = "3"
|
|
|
|
## FAKESINK_STATE_ERROR_PLAYING_PAUSED = "4"
|
|
|
|
## FAKESINK_STATE_ERROR_PAUSED_READY = "5"
|
|
|
|
## FAKESINK_STATE_ERROR_READY_NULL = "6"
|
|
|
|
|
|
|
|
## name = 'fakesink'
|
|
|
|
## alias = 'sink'
|
|
|
|
## def setUp(self):
|
|
|
|
## ElementTest.setUp(self)
|
|
|
|
## self.element = gst.element_factory_make('fakesink', 'sink')
|
|
|
|
|
|
|
|
## def tearDown(self):
|
|
|
|
## self.element.set_state(gst.STATE_NULL)
|
|
|
|
## del self.element
|
|
|
|
## ElementTest.tearDown(self)
|
|
|
|
|
|
|
|
## def checkError(self, old_state, state, name):
|
|
|
|
## assert self.element.get_state() == gst.STATE_NULL
|
|
|
|
## assert self.element.set_state(old_state)
|
|
|
|
## assert self.element.get_state() == old_state
|
|
|
|
## self.element.set_property('state-error', name)
|
|
|
|
## self.error = False
|
|
|
|
## def error_cb(element, source, gerror, debug):
|
|
|
|
## assert isinstance(element, gst.Element)
|
|
|
|
## assert element == self.element
|
|
|
|
## assert isinstance(source, gst.Element)
|
|
|
|
## assert source == self.element
|
|
|
|
## assert isinstance(gerror, gst.GError)
|
|
|
|
## self.error = True
|
2004-07-15 14:57:48 +00:00
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
## self.element.connect('error', error_cb)
|
|
|
|
## self.element.set_state (state)
|
|
|
|
## assert self.error, 'error not set'
|
|
|
|
## #assert error_message.find('ERROR') != -1
|
2004-06-21 09:26:59 +00:00
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
## self.element.get_state() == old_state, 'state changed'
|
2004-07-15 14:57:48 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateErrorNullReady(self):
|
|
|
|
## self.checkError(gst.STATE_NULL, gst.STATE_READY,
|
|
|
|
## self.FAKESINK_STATE_ERROR_NULL_READY)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateErrorReadyPaused(self):
|
|
|
|
## self.checkError(gst.STATE_READY, gst.STATE_PAUSED,
|
|
|
|
## self.FAKESINK_STATE_ERROR_READY_PAUSED)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateErrorPausedPlaying(self):
|
|
|
|
## self.checkError(gst.STATE_PAUSED, gst.STATE_PLAYING,
|
|
|
|
## self.FAKESINK_STATE_ERROR_PAUSED_PLAYING)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateErrorPlayingPaused(self):
|
|
|
|
## self.checkError(gst.STATE_PLAYING, gst.STATE_PAUSED,
|
|
|
|
## self.FAKESINK_STATE_ERROR_PLAYING_PAUSED)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateErrorPausedReady(self):
|
|
|
|
## self.checkError(gst.STATE_PAUSED, gst.STATE_READY,
|
|
|
|
## self.FAKESINK_STATE_ERROR_PAUSED_READY)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateErrorReadyNull(self):
|
|
|
|
## self.checkError(gst.STATE_READY, gst.STATE_NULL,
|
|
|
|
## self.FAKESINK_STATE_ERROR_READY_NULL)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
## def checkStateChange(self, old, new):
|
|
|
|
## def state_change_cb(element, old_s, new_s):
|
|
|
|
## assert isinstance(element, gst.Element)
|
|
|
|
## assert element == self.element
|
|
|
|
## assert old_s == old
|
|
|
|
## assert new_s == new
|
2004-06-21 09:26:59 +00:00
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
## assert self.element.set_state(old)
|
|
|
|
## assert self.element.get_state(0.0)[1] == old
|
2004-06-21 09:26:59 +00:00
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
## # FIXME: replace with messages
|
|
|
|
## # self.element.connect('state-change', state_change_cb)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
## assert self.element.set_state(new)
|
|
|
|
## assert self.element.get_state(0.0)[1] == new
|
2004-06-21 09:26:59 +00:00
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
## def testStateChangeNullReady(self):
|
|
|
|
## self.checkStateChange(gst.STATE_NULL, gst.STATE_READY)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateChangeReadyPaused(self):
|
|
|
|
## self.checkStateChange(gst.STATE_READY, gst.STATE_PAUSED)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateChangePausedPlaying(self):
|
|
|
|
## self.checkStateChange(gst.STATE_PAUSED, gst.STATE_PLAYING)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateChangePlayingPaused(self):
|
|
|
|
## self.checkStateChange(gst.STATE_PLAYING, gst.STATE_PAUSED)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
## def testStateChangePausedReady(self):
|
|
|
|
## self.checkStateChange(gst.STATE_PAUSED, gst.STATE_READY)
|
2004-06-21 09:26:59 +00:00
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
## def testStateChangeReadyNull(self):
|
|
|
|
## self.checkStateChange(gst.STATE_READY, gst.STATE_NULL)
|
2004-07-13 09:08:32 +00:00
|
|
|
|
2004-06-21 09:26:59 +00:00
|
|
|
class NonExistentTest(ElementTest):
|
|
|
|
name = 'this-element-does-not-exist'
|
|
|
|
alias = 'no-alias'
|
|
|
|
|
|
|
|
testGoodConstructor = lambda s: None
|
|
|
|
testGoodConstructor2 = lambda s: None
|
|
|
|
|
|
|
|
class FileSrcTest(ElementTest):
|
|
|
|
name = 'filesrc'
|
|
|
|
alias = 'source'
|
|
|
|
|
|
|
|
class FileSinkTest(ElementTest):
|
|
|
|
name = 'filesink'
|
|
|
|
alias = 'sink'
|
|
|
|
|
2005-10-11 12:42:53 +00:00
|
|
|
class ElementName(TestCase):
|
2004-06-21 09:26:59 +00:00
|
|
|
def testElementStateGetName(self):
|
|
|
|
get_name = gst.element_state_get_name
|
|
|
|
for state in ('NULL',
|
|
|
|
'READY',
|
|
|
|
'PLAYING',
|
|
|
|
'PAUSED'):
|
|
|
|
name = 'STATE_' + state
|
|
|
|
assert hasattr(gst, name)
|
|
|
|
attr = getattr(gst, name)
|
|
|
|
assert get_name(attr) == state
|
|
|
|
|
2005-09-12 16:20:24 +00:00
|
|
|
assert get_name(gst.STATE_VOID_PENDING) == 'VOID_PENDING'
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
assert get_name(-1) == 'UNKNOWN!(-1)'
|
2004-06-21 09:26:59 +00:00
|
|
|
self.assertRaises(TypeError, get_name, '')
|
|
|
|
|
2005-09-28 14:20:03 +00:00
|
|
|
class QueryTest(TestCase):
|
2004-07-13 09:08:32 +00:00
|
|
|
def setUp(self):
|
2005-09-28 15:48:10 +00:00
|
|
|
TestCase.setUp(self)
|
2004-07-13 09:08:32 +00:00
|
|
|
self.pipeline = gst.parse_launch('fakesrc name=source ! fakesink')
|
2005-09-28 14:20:03 +00:00
|
|
|
self.assertEquals(self.pipeline.__gstrefcount__, 1)
|
|
|
|
|
2004-07-13 09:08:32 +00:00
|
|
|
self.element = self.pipeline.get_by_name('source')
|
2005-09-28 14:20:03 +00:00
|
|
|
self.assertEquals(self.pipeline.__gstrefcount__, 1)
|
|
|
|
self.assertEquals(self.element.__gstrefcount__, 2)
|
|
|
|
self.assertEquals(sys.getrefcount(self.element), 3)
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
del self.pipeline
|
|
|
|
del self.element
|
2005-09-28 15:48:10 +00:00
|
|
|
TestCase.tearDown(self)
|
2004-07-13 09:08:32 +00:00
|
|
|
|
|
|
|
def testQuery(self):
|
2005-09-28 14:20:03 +00:00
|
|
|
gst.debug('querying fakesrc in FORMAT_BYTES')
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
res = self.element.query_position(gst.FORMAT_BYTES)
|
2005-09-28 14:20:03 +00:00
|
|
|
self.assertEquals(self.pipeline.__gstrefcount__, 1)
|
|
|
|
self.assertEquals(sys.getrefcount(self.pipeline), 3)
|
|
|
|
self.assertEquals(self.element.__gstrefcount__, 2)
|
|
|
|
self.assertEquals(sys.getrefcount(self.element), 3)
|
gst/: Added GError wrapping,
Original commit message from CVS:
* gst/gst-types.defs:
* gst/gst.defs:
Added GError wrapping,
Removed data field from Buffer,
Added virtual methods to object
Updated to latest API
* gst/gst.override:
wrapped gst_plugin_get_feature_list(), gst_uri_handler_get_protocols(),
gst_registry_pool_list()
* gst/gstbuffer.override:
gst.Buffer() works
get/setters fixed
wrapped gst_buffer_stamp()
* gst/gstbus.override:
wrapped gst_bus_set_sync_handler() and gst_bus_add_watch()
* gst/gstelement.override:
wrapped gst_element_send_event(), gst_element_factory_get_pad_templates()
gst_element_query_convert(), gst_element_get_query_types()
* gst/gstevent.override:
wrapped gst_event_discont_get_value()
* gst/gstmessage.override:
wrapped gst_message_parse_state_changed(), gst_message_parse_error(),
gst_message_parse_warning(), gst_message_parse_tag()
* gst/gstmodule.c:
Added registration of new fundamental type with pygtk
* gst/gstpad.override:
wrapped gst_pad_query(), gst_pad_[add|remove]_[data|event|buffer]_probe(),
gst_pad_query_position(), gst_pad_query_convert()
* gst/gstquery.override:
wrapped gst_query_parse_position(), gst_query_parse_convert(),
gst_query_parse_seeking_query(), gst_query_parse_seeking_reponse()
* gst/pygstminiobject.c:
fixes
* gst/Makefile.am:
added gstbus.override, gstmessage.override, gstquery.override
* testsuite/test_buffer.py:
* testsuite/test_element.py:
* testsuite/test_event.py:
* testsuite/test_pipeline.py:
Updating testsuites
2005-07-12 09:45:58 +00:00
|
|
|
assert res
|
|
|
|
assert res[0] == 0
|
2005-10-27 09:51:18 +00:00
|
|
|
self.assertRaises(gst.QueryError, self.element.query_position,
|
|
|
|
gst.FORMAT_TIME)
|
2005-09-28 14:20:03 +00:00
|
|
|
self.gccollect()
|
2004-07-13 09:08:32 +00:00
|
|
|
|
2005-09-28 15:48:10 +00:00
|
|
|
class QueueTest(TestCase):
|
2004-08-30 10:42:36 +00:00
|
|
|
def testConstruct(self):
|
|
|
|
queue = gst.element_factory_make('queue')
|
|
|
|
assert isinstance(queue, gst.Queue)
|
|
|
|
assert queue.get_name() == 'queue0'
|
2005-09-28 12:17:29 +00:00
|
|
|
self.assertEquals(queue.__gstrefcount__, 1)
|
|
|
|
|
2005-09-28 15:48:10 +00:00
|
|
|
class DebugTest(TestCase):
|
2005-09-08 14:08:32 +00:00
|
|
|
def testDebug(self):
|
|
|
|
e = gst.element_factory_make('fakesrc')
|
|
|
|
e.error('I am an error string')
|
|
|
|
e.warning('I am a warning string')
|
|
|
|
e.info('I am an info string')
|
|
|
|
e.debug('I am a debug string')
|
|
|
|
e.log('I am a log string')
|
|
|
|
e.debug('I am a formatted %s %s' % ('log', 'string'))
|
2005-09-12 17:06:09 +00:00
|
|
|
|
|
|
|
def testElementDebug(self):
|
|
|
|
e = TestElement("testelement")
|
|
|
|
e.set_property("name", "testelement")
|
|
|
|
e.break_it_down()
|
2005-09-08 14:08:32 +00:00
|
|
|
|
2005-10-05 21:50:43 +00:00
|
|
|
class LinkNoPadsTest(TestCase):
|
|
|
|
def testLinkNoPads(self):
|
|
|
|
src = gst.Bin()
|
|
|
|
sink = gst.Bin()
|
|
|
|
self.assertRaises(gst.LinkError, src.link, sink)
|
|
|
|
|
2004-06-21 09:26:59 +00:00
|
|
|
if __name__ == "__main__":
|
|
|
|
unittest.main()
|