mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 10:40:34 +00:00
4373919e96
Original commit message from CVS: * testsuite/test_interface.py: Don't hardcode 'alsasrc' for testing GstMixer and GstPropertyProbe interfaces, but instead search one through the registry. If none are available, return gracefully.
93 lines
3.2 KiB
Python
93 lines
3.2 KiB
Python
# -*- Mode: Python -*-
|
|
# vi:si:et:sw=4:sts=4:ts=4
|
|
#
|
|
# 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
|
|
|
|
from common import gst, unittest, TestCase
|
|
|
|
import gobject
|
|
|
|
def find_mixer_element():
|
|
""" Searches for an element implementing the mixer interface """
|
|
allmix = [x for x in gst.registry_get_default().get_feature_list(gst.ElementFactory)
|
|
if x.has_interface("GstMixer") and x.has_interface("GstPropertyProbe")]
|
|
if allmix == []:
|
|
return None
|
|
return allmix[0]
|
|
|
|
class Availability(TestCase):
|
|
def testXOverlay(self):
|
|
assert hasattr(gst.interfaces, 'XOverlay')
|
|
assert issubclass(gst.interfaces.XOverlay, gobject.GInterface)
|
|
|
|
def testMixer(self):
|
|
assert hasattr(gst.interfaces, 'Mixer')
|
|
assert issubclass(gst.interfaces.Mixer, gobject.GInterface)
|
|
|
|
class FunctionCall(TestCase):
|
|
def FIXME_testXOverlay(self):
|
|
# obviously a testsuite is not allowed to instantiate this
|
|
# since it needs a running X or will fail. find some way to
|
|
# deal with that.
|
|
element = gst.element_factory_make('xvimagesink')
|
|
assert isinstance(element, gst.Element)
|
|
assert isinstance(element, gst.interfaces.XOverlay)
|
|
element.set_xwindow_id(0L)
|
|
|
|
class MixerTest(TestCase):
|
|
def setUp(self):
|
|
TestCase.setUp(self)
|
|
amix = find_mixer_element()
|
|
if amix:
|
|
self.mixer = amix.create()
|
|
else:
|
|
self.mixer = None
|
|
assert self.mixer
|
|
|
|
def tearDown(self):
|
|
del self.mixer
|
|
TestCase.tearDown(self)
|
|
|
|
def testGetProperty(self):
|
|
if self.mixer == None:
|
|
return
|
|
self.failUnless(self.mixer.probe_get_property('device'))
|
|
self.assertRaises(ValueError,
|
|
self.mixer.probe_get_property, 'non-existent')
|
|
|
|
def testGetProperties(self):
|
|
if self.mixer == None:
|
|
return
|
|
properties = self.mixer.probe_get_properties()
|
|
self.failUnless(properties)
|
|
self.assertEqual(type(properties), list)
|
|
prop = properties[0]
|
|
self.assertEqual(prop.name, 'device')
|
|
self.assertEqual(prop.value_type, gobject.TYPE_STRING)
|
|
|
|
def testGetValuesName(self):
|
|
if self.mixer == None:
|
|
return
|
|
values = self.mixer.probe_get_values_name('device')
|
|
self.assertEqual(type(values), list)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|