msmith - in flumotion/trunk: . flumotion/component/producers/playlist flumotion/test

flumotion-commit at lists.fluendo.com flumotion-commit at lists.fluendo.com
Wed May 16 13:03:00 CEST 2007


Author: msmith
Date: Wed May 16 13:02:58 2007
New Revision: 4960

Modified:
   flumotion/trunk/ChangeLog
   flumotion/trunk/flumotion/component/producers/playlist/playlistparser.py
   flumotion/trunk/flumotion/test/test_component_playlist.py
Log:
        * flumotion/component/producers/playlist/playlistparser.py:
          Return new item from addItem (used in tests)
        * flumotion/test/test_component_playlist.py:
          Add a test, randomly prod something to make buildbots maybe happier?



Modified: flumotion/trunk/ChangeLog
==============================================================================
--- flumotion/trunk/ChangeLog	(original)
+++ flumotion/trunk/ChangeLog	Wed May 16 13:02:58 2007
@@ -1,5 +1,12 @@
 2007-05-16  Michael Smith <msmith at fluendo.com>
 
+	* flumotion/component/producers/playlist/playlistparser.py:
+	  Return new item from addItem (used in tests)
+	* flumotion/test/test_component_playlist.py:
+	  Add a test, randomly prod something to make buildbots maybe happier?
+
+2007-05-16  Michael Smith <msmith at fluendo.com>
+
 	* flumotion/test/Makefile.am:
 	* flumotion/test/test_component_playlist.py:
 	  First round of simple tests for playlist stuff

Modified: flumotion/trunk/flumotion/component/producers/playlist/playlistparser.py
==============================================================================
--- flumotion/trunk/flumotion/component/producers/playlist/playlistparser.py	(original)
+++ flumotion/trunk/flumotion/component/producers/playlist/playlistparser.py	Wed May 16 13:02:58 2007
@@ -90,7 +90,7 @@
         if current and timestamp < current.timestamp + current.duration:
             self.warning("New object at uri %s starts during current object, "
                 "cannot add")
-            return
+            return None
 
         newitem = PlaylistItem(id, timestamp, uri, offset, duration)
         newitem.hasAudio = hasAudio
@@ -159,6 +159,8 @@
         # Then we need to actually add newitem into the gnonlin timeline
         self.producer.scheduleItem(newitem)
 
+        return newitem
+
     def expireOldEntries(self):
         """
         Delete references to old playlist entries that have passed.

Modified: flumotion/trunk/flumotion/test/test_component_playlist.py
==============================================================================
--- flumotion/trunk/flumotion/test/test_component_playlist.py	(original)
+++ flumotion/trunk/flumotion/test/test_component_playlist.py	Wed May 16 13:02:58 2007
@@ -28,7 +28,7 @@
 
 from flumotion.component.producers.playlist import playlistparser
 
-class FakeProducer():
+class FakeProducer(object):
     def scheduleItem(self, item):
         pass
 
@@ -84,5 +84,23 @@
         self.assertTrue(self.playlist._itemsById.has_key('id2'))
         self.checkItems(1)
 
+    def testAddOverlappingItems(self):
+        first = self.playlist.addItem('id1', 0, "file:///testuri", 0, 100, 
+            True, True)
+        self.assertEquals(first.duration, 100)
+        second = self.playlist.addItem('id1', 50, "file:///testuri", 0, 100, 
+            True, True)
+
+        self.checkItems(2)
+        # First one should have had duration adjusted
+        self.assertEquals(first.duration, 50)
+
+        third = self.playlist.addItem('id1', 25, "file:///testuri", 0, 150, 
+            True, True)
+        # Second should have been deleted
+        self.assertFalse(second in self.playlist._itemsById['id1'])
+        self.checkItems(2)
+        self.assertEquals(first.duration, 25)
+
 if __name__ == '__main__':
     unittest.main()


More information about the flumotion-commit mailing list