def testRealtime(self): clock.set(clock.RealTime()) self.assertNotEquals(clock.now(), test_time) a = clock.now() time.sleep(0.1) b = clock.now() d = b-a self.assertTrue(d.microseconds < 200000, "Not equal, delta should be 100000-200000: delta = %f" % (d.microseconds))
def testSchedule(self): t = clock.SimulatedTime(test_time) clock.set(t) s = playlist.Schedule() p1 = s.new_program() p1.set_program(0, program_start=clock.now() + datetime.timedelta(seconds=5)) s.add(p1) p2 = s.new_program() p2.set_program(1, program_start=clock.now() + datetime.timedelta(seconds=10), playback_duration=5) s.add(p2) p3 = s.new_program() p3.set_program(2, program_start=clock.now() + datetime.timedelta(seconds=20), playback_duration=5.5) s.add(p3) # Not started yet self.assertEqual(s.get_current_program(), None) self.assertEqual(s.get_next_program(), p1) self.assertNotEqual(s.get_next_program(), p2) t.advance(datetime.timedelta(seconds=5)) # At beginning of first video self.assertEqual(s.get_current_program(), p1) self.assertEqual(p1.seconds_until_playback(), 0) self.assertEqual(p1.seconds_since_playback(), 0) # At start of second video t.advance(datetime.timedelta(seconds=5)) self.assertEqual(s.get_current_program(), p2) self.assertEqual(s.get_next_program(), p3) # At end of second t.advance(datetime.timedelta(seconds=5)) self.assertEqual(s.get_current_program(), None) self.assertEqual(s.get_next_program(), p3) # At start of tird t.advance(datetime.timedelta(seconds=5.0)) self.assertEqual(s.get_current_program(), p3) self.assertEqual(t.now().second, 20) # Half sec into third t.advance(datetime.timedelta(seconds=0.5)) self.assertEqual(s.get_current_program(), p3) self.assertEqual(s.get_next_program(), None) # At end of third t.advance(datetime.timedelta(seconds=5)) self.assertEqual(s.get_current_program(), None) self.assertEqual(s.get_next_program(), None) # Test remove t = clock.SimulatedTime(test_time) clock.set(t) self.assertEqual(s.get_next_program(), p1) s.remove(p1) self.assertEqual(s.get_next_program(), p2)
def testManualTime(self): source = clock.ManualTime(test_time) clock.set(source) self.assertEquals(clock.now(), test_time) a = clock.now() time.sleep(0.1) b = clock.now() d = b - a self.assertEquals(d.microseconds, 0) source.advance(datetime.timedelta(seconds=5)) self.assertEquals(clock.now().second, 5)
def testManualTime(self): source = clock.ManualTime(test_time) clock.set(source) self.assertEquals(clock.now(), test_time) a = clock.now() time.sleep(0.1) b = clock.now() d = b-a self.assertEquals(d.microseconds, 0) source.advance(datetime.timedelta(seconds=5)) self.assertEquals(clock.now().second, 5)
def testReset(self): source = clock.SimulatedTime(test_time, ratio=0.0) clock.set(source) self.assertEquals(clock.now(), test_time) clock.reset() self.assertNotEquals(clock.now(), test_time) a = clock.now() time.sleep(0.1) b = clock.now() d = b-a self.assertTrue(d.microseconds < 200000, "Not equal, delta should be 100000-200000: delta = %f" % (d.microseconds))
def testProgram(self): t = clock.SimulatedTime(test_time) clock.set(t) p = playlist.Program() start = clock.now()+datetime.timedelta(seconds=5) p.set_program(100, program_start=start, playback_duration=200) self.assertEqual(p.seconds_until_playback(), 5) self.assertNotEqual(p.seconds_since_playback(), 5) t.advance(datetime.timedelta(seconds=10)) self.assertNotEqual(p.seconds_until_playback(), 5) self.assertEqual(p.seconds_since_playback(), 5) d = p.jsondict() self.assertEqual(d["program_end"], (start+datetime.timedelta(seconds=200)).ctime()) self.assertEqual(d["program_start"], (start).ctime())
def testProgram(self): t = clock.SimulatedTime(test_time) clock.set(t) p = playlist.Program() start = clock.now()+datetime.timedelta(seconds=5) p.set_program(100, program_start=start, playback_duration=200) self.assertEqual(p.seconds_until_playback(), 5) self.assertNotEqual(p.seconds_since_scheduled_start(), 5) t.advance(datetime.timedelta(seconds=10)) self.assertNotEqual(p.seconds_until_playback(), 5) self.assertEqual(p.seconds_since_scheduled_start(), 5) d = p.jsondict() self.assertEqual(d["program_end"], (start+datetime.timedelta(seconds=200)).ctime()) self.assertEqual(d["program_start"], (start).ctime())
def testSimulatedTime(self): source = clock.SimulatedTime(test_time, ratio=0.0) clock.set(source) self.assertEquals(clock.now(), test_time) a = clock.now() time.sleep(0.1) b = clock.now() d = b-a self.assertEquals(d.microseconds, 0) source.advance(datetime.timedelta(seconds=5)) self.assertEquals(clock.now().second, 5) source.set_ratio(100.0) time.sleep(0.125) self.assertAlmostEqual(clock.now().second+clock.now().microsecond/1e6, 17.5, places=0)
def testSimulatedTime(self): source = clock.SimulatedTime(test_time, ratio=0.0) clock.set(source) self.assertEquals(clock.now(), test_time) a = clock.now() time.sleep(0.1) b = clock.now() d = b-a self.assertEquals(d.microseconds, 0) source.advance(datetime.timedelta(seconds=5)) self.assertEquals(clock.now().second, 5) source.set_ratio(100.0) time.sleep(0.125) self.assertAlmostEqual(clock.now().second + clock.now().microsecond / 1e6, 17.5, places=0)
def testSchedule(self): t = clock.SimulatedTime(test_time) clock.set(t) s = playlist.Schedule() p1 = s.new_program() p1.set_program(0, program_start=clock.now()+datetime.timedelta(seconds=5)) s.add(p1) p2 = s.new_program() p2.set_program(1, program_start=clock.now()+datetime.timedelta(seconds=10),playback_duration=5) s.add(p2) p3 = s.new_program() p3.set_program(2, program_start=clock.now()+datetime.timedelta(seconds=20),playback_duration=5.5) s.add(p3) # Not started yet self.assertEqual(s.get_current_program(), None) self.assertEqual(s.get_next_program(), p1) self.assertNotEqual(s.get_next_program(), p2) t.advance(datetime.timedelta(seconds=5)) # At beginning of first video self.assertEqual(s.get_current_program(), p1) self.assertEqual(p1.seconds_until_playback(), 0) self.assertEqual(p1.seconds_since_playback(), 0) # At start of second video t.advance(datetime.timedelta(seconds=5)) self.assertEqual(s.get_current_program(), p2) self.assertEqual(s.get_next_program(), p3) # At end of second t.advance(datetime.timedelta(seconds=5)) self.assertEqual(s.get_current_program(), None) self.assertEqual(s.get_next_program(), p3) # At start of tird t.advance(datetime.timedelta(seconds=5.0)) self.assertEqual(s.get_current_program(), p3) self.assertEqual(t.now().second, 20) # Half sec into third t.advance(datetime.timedelta(seconds=0.5)) self.assertEqual(s.get_current_program(), p3) self.assertEqual(s.get_next_program(), None) # At end of third t.advance(datetime.timedelta(seconds=5)) self.assertEqual(s.get_current_program(), None) self.assertEqual(s.get_next_program(), None) # Test remove t = clock.SimulatedTime(test_time) clock.set(t) self.assertEqual(s.get_next_program(), p1) s.remove(p1) self.assertEqual(s.get_next_program(), p2)