def testTagMessage(self): # Create a taglist t = gst.TagList() t['something'] = "else" t['another'] = 42 # Create two messages using that same taglist m1 = gst.message_new_tag(self.element, t) assert m1 m2 = gst.message_new_tag(self.element, t) assert m2 # make sure the two messages have the same taglist t1 = m1.parse_tag() assert t1 keys = t1.keys() keys.sort() self.assertEquals(keys, ['another', 'something']) self.assertEquals(t1['something'], "else") self.assertEquals(t1['another'], 42) t2 = m2.parse_tag() assert t2 keys = t2.keys() keys.sort() self.assertEquals(keys, ['another', 'something']) self.assertEquals(t2['something'], "else") self.assertEquals(t2['another'], 42)
def testTagFullMessage(self): if hasattr(gst.Message, 'parse_tag_full'): p = gst.Pad("blahblah", gst.PAD_SRC) # Create a taglist t = gst.TagList() t['something'] = "else" t['another'] = 42 # Create two messages using that same taglist m1 = gst.message_new_tag_full(self.element, p, t) assert m1 m2 = gst.message_new_tag_full(self.element, p, t) assert m2 # make sure the two messages have the same taglist p1, t1 = m1.parse_tag_full() assert t1 keys = t1.keys() keys.sort() self.assertEquals(p1, p) self.assertEquals(keys, ['another', 'something']) self.assertEquals(t1['something'], "else") self.assertEquals(t1['another'], 42) p2, t2 = m2.parse_tag_full() assert t2 keys = t2.keys() keys.sort() self.assertEquals(p2, p) self.assertEquals(keys, ['another', 'something']) self.assertEquals(t2['something'], "else") self.assertEquals(t2['another'], 42)
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'])
def testXmp(self): taglist = gst.TagList() taglist['title'] = 'my funny title' taglist['geo-location-latitude'] = 23.25 xmp = tag.tag_list_to_xmp_buffer(taglist, True) self.assertNotEquals(xmp, None) taglist2 = tag.tag_list_from_xmp_buffer(xmp) self.assertEquals(len(taglist2), 2) self.assertEquals(taglist2['title'], 'my funny title') self.assertEquals(taglist2['geo-location-latitude'], 23.25)
def testUnicode(self): taglist = gst.TagList() # normal ASCII text taglist[gst.TAG_ARTIST] = 'Artist' self.failUnless(isinstance(taglist[gst.TAG_ARTIST], unicode)) self.assertEquals(taglist[gst.TAG_ARTIST], u'Artist') self.assertEquals(taglist[gst.TAG_ARTIST], 'Artist') # normal ASCII text as unicode taglist[gst.TAG_ARTIST] = u'Artist' self.failUnless(isinstance(taglist[gst.TAG_ARTIST], unicode)) self.assertEquals(taglist[gst.TAG_ARTIST], u'Artist') self.assertEquals(taglist[gst.TAG_ARTIST], 'Artist') # real unicode taglist[gst.TAG_ARTIST] = u'S\xc3\xadgur R\xc3\xb3s' self.failUnless(isinstance(taglist[gst.TAG_ARTIST], unicode)) self.assertEquals(taglist[gst.TAG_ARTIST], u'S\xc3\xadgur R\xc3\xb3s')
def testRun(self): # in 0.10.15.1, this triggers # sys:1: gobject.Warning: g_value_get_uint: assertion `G_VALUE_HOLDS_UINT (value)' failed # during pipeline playing l = gst.TagList() l[gst.TAG_ARTIST] = 'artist' l[gst.TAG_TRACK_NUMBER] = 1 encoder = self.pipeline.get_by_name('encoder') encoder.merge_tags(l, gst.TAG_MERGE_APPEND) self.assertEqual(self.pipeline.get_state()[1], gst.STATE_NULL) self.pipeline.set_state(gst.STATE_PLAYING) self.assertEqual(self.pipeline.get_state()[1], gst.STATE_PLAYING) time.sleep(1) self.assertEqual(self.pipeline.get_state()[1], gst.STATE_PLAYING) self.pipeline.set_state(gst.STATE_NULL) self.assertEqual(self.pipeline.get_state()[1], gst.STATE_NULL)
def testUnsignedInt(self): taglist = gst.TagList() taglist[gst.TAG_TRACK_NUMBER] = 1 vorbis = gst.tag.to_vorbis_comments(taglist, gst.TAG_TRACK_NUMBER) self.assertEquals(vorbis, ['TRACKNUMBER=1'])
def testLength(self): taglist = gst.TagList() self.assertEqual(len(taglist), 0) taglist['key1'] = 'value' taglist['key2'] = 'value' self.assertEqual(len(taglist), 2)
def testContains(self): taglist = gst.TagList() self.failIf('key' in taglist) taglist['key'] = 'value' self.failUnless('key' in taglist)