summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <johan@gnome.org>2007-03-17 13:36:48 +0000
committerJohan Dahlin <johan@gnome.org>2007-03-17 13:36:48 +0000
commit51baae336ca8ad2182131b58c3be0d9933d2cb05 (patch)
tree9a011e16add803ca78af6fe026b944e5229293cb
parente8b581108dd40c2eeb2e470f1bb5173ff8e0872b (diff)
Implement sq_contains and add tests for gst.TagList.
Original commit message from CVS: * gst/gsttaglist.override (_wrap_gst_tag_list_contains): * testsuite/test_taglist.py (TestTagList.testKeys): Implement sq_contains and add tests for gst.TagList.
-rw-r--r--ChangeLog7
m---------common0
-rw-r--r--gst/gsttaglist.override22
-rw-r--r--testsuite/Makefile.am1
-rw-r--r--testsuite/test_taglist.py45
5 files changed, 75 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d86a876..16c8ba2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-03-17 Johan Dahlin <jdahlin@async.com.br>
+
+ * gst/gsttaglist.override (_wrap_gst_tag_list_contains):
+ * testsuite/test_taglist.py (TestTagList.testKeys):
+
+ Implement sq_contains and add tests for TagList.
+
2007-03-02 Edward Hervey <edward@fluendo.com>
* gst/__init__.py:
diff --git a/common b/common
-Subproject 9a56e28fc15440eb6852411321c46312e1d1bb7
+Subproject dec151d15512e4cca2dcdd36d9c6c4a2185760e
diff --git a/gst/gsttaglist.override b/gst/gsttaglist.override
index 51ddccf..04d7e2c 100644
--- a/gst/gsttaglist.override
+++ b/gst/gsttaglist.override
@@ -117,3 +117,25 @@ static PyMappingMethods _wrap_gst_tag_list_tp_as_mapping = {
(binaryfunc)_wrap_gst_tag_list_subscript, /* mp_subscript */
(objobjargproc)_wrap_gst_tag_list_ass_subscript /* mp_ass_subscript */
};
+%%
+override-slot GstTagList.tp_as_sequence
+static int
+_wrap_gst_tag_list_contains(PyGObject *self, PyObject *py_key)
+{
+ return gst_structure_has_field((GstStructure*)self->obj,
+ PyString_AsString(py_key));
+}
+
+static PySequenceMethods _wrap_gst_tag_list_tp_as_sequence = {
+ (inquiry)NULL,
+ (binaryfunc)NULL,
+ (intargfunc)NULL,
+ (intargfunc)NULL,
+ (intintargfunc)NULL,
+ (intobjargproc)NULL,
+ (intintobjargproc)NULL,
+ (objobjproc)_wrap_gst_tag_list_contains,
+ (binaryfunc)NULL,
+ (intargfunc)NULL,
+};
+
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index d8fd3f6..d313ce9 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -32,6 +32,7 @@ tests = \
test_registry.py \
test_struct.py \
test_segment.py \
+ test_taglist.py \
test_xml.py
check-local: testhelper.la
diff --git a/testsuite/test_taglist.py b/testsuite/test_taglist.py
new file mode 100644
index 0000000..c9c0a41
--- /dev/null
+++ b/testsuite/test_taglist.py
@@ -0,0 +1,45 @@
+# -*- Mode: Python -*-
+# vi:si:et:sw=4:sts=4:ts=4
+#
+# gst-python - Python bindings for GStreamer
+# Copyright (C) 2007 Johan Dahlin
+#
+# 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, TestCase
+
+
+class TestTagList(TestCase):
+ def testContains(self):
+ taglist = gst.TagList()
+ self.failIf('key' in taglist)
+ taglist['key'] = 'value'
+ self.failUnless('key' in taglist)
+
+ def testLength(self):
+ taglist = gst.TagList()
+ self.assertEqual(len(taglist), 0)
+ taglist['key1'] = 'value'
+ taglist['key2'] = 'value'
+ self.assertEqual(len(taglist), 2)
+
+ def testKeys(self):
+ taglist = gst.TagList()
+ self.assertEqual(taglist.keys(), [])
+ taglist['key1'] = 'value'
+ taglist['key2'] = 'value'
+ keys = taglist.keys()
+ keys.sort()
+ self.assertEqual(keys, ['key1', 'key2'])