def update(request,channel_id): clock = Clock(logger=logger) clock.start() if request.GET.get('mode'): mode = request.GET['mode'] else: mode = 'full' queue = QueueManager(channel = channel_id) backgrounds,backgrounds_directory = __get_backgrounds() now_playing_data = __get_playing(channel_id) if mode == 'full': update = { "queue":queue.getQueue(), "current_background":get_current_background(channel = channel_id), "backgrounds":backgrounds, "now_playing":now_playing_data } elif mode == 'player': update = { "queue":queue.getQueue(), "current_background":get_current_background(channel = channel_id), "backgrounds":backgrounds, "now_playing":now_playing_data } logger.info("Update %s returned in %f seconds" % (mode,clock.stop())) return HttpResponse(json.dumps(update))
class TestSequenceFunctions(TestCase): def setUp(self): user = User.objects.create(username='******') user.save() channel = Channel(creator=user) channel.save() self.queue = QueueManager(channel=channel.id) def test_db_connection(self): print "Test 1" self.assertIsNotNone(self.queue.get_db()) def test_check_initial_emptiness(self): print "Test 2" self.assertEqual(len(self.queue.getQueue()), 0) def test_add_item(self): print "Test 2" self.queue.add(url="tGiEsjtfJdg", creator="127.0.0.1") self.assertEqual(len(self.queue.getQueue()), 1) def test_rm_item(self): print "Test 3" self.queue.rm(url="tGiEsjtfJdg") self.assertEqual(len(self.queue.getQueue()), 0) def test_uniqueness(self): print "Test 4" self.queue.add(url="tGiEsjtfJdg", creator="127.0.0.1") self.queue.add(url="tGiEsjtfJdg", creator="127.0.0.1") self.queue.add(url="tGiEsjtfJdg", creator="127.0.0.2") self.assertEqual(len(self.queue.getQueue()), 1) def test_next_video(self): print "Test 5" self.queue.add(url="tGiEsjtfJdg", creator="127.0.0.1") self.queue.add(url="XFwVfrAURDg", creator="127.0.0.1") self.queue.add(url="EfuVcRdamCY", creator="127.0.0.1") self.queue.add(url="4pRPAbCwgSs", creator="127.0.0.1") count = 0 added = [] self.assertEqual(len(self.queue.getQueue()), 4) self.assertEqual(self.queue.next(), "tGiEsjtfJdg") self.assertEqual(len(self.queue.getQueue()), 3) self.assertEqual(self.queue.next(), "XFwVfrAURDg") self.assertEqual(len(self.queue.getQueue()), 2) self.assertEqual(self.queue.next(), "EfuVcRdamCY") self.assertEqual(len(self.queue.getQueue()), 1) self.assertEqual(self.queue.next(), "4pRPAbCwgSs") self.assertEqual(len(self.queue.getQueue()), 0) self.assertIsNone(self.queue.next()) def test_votes(self): print "Test 6" added = [] # Asserts that it cant register a vote to something that isn't there self.assertFalse( self.queue.register_vote(url="dummy", positive=1, negative=0, creator="127.0.0.1")) # Asserts votes for queues of a single item self.assertEqual(self.queue.add(url="tGiEsjtfJdg", creator="127.0.0.1"), (True, True)) #1,0 self.assertEqual(self.queue.add(url="tGiEsjtfJdg", creator="127.0.0.1"), (True, False)) #1,0 elements = self.queue.getQueue() for element in elements: self.assertIsNotNone(element) self.assertEqual(element.get("positive"), 1) self.assertEqual(element.get("negative"), 0) self.assertTrue( self.queue.register_vote( url="tGiEsjtfJdg", #2,0 positive=1, negative=0, creator="127.0.0.2")) self.assertFalse( self.queue.register_vote( url="tGiEsjtfJdg", #2,0 positive=1, negative=0, creator="127.0.0.2")) elements = self.queue.getQueue() self.assertEqual(len(elements), 1) element = [x for x in elements if x.get("url") == "tGiEsjtfJdg"][0] self.assertIsNotNone(element) self.assertEqual(element.get("positive"), 2) self.assertEqual(element.get("negative"), 0) # Asserts votes for bigger queues self.queue.add(url="XFwVfrAURDg", creator="127.0.0.1") self.queue.add(url="EfuVcRdamCY", creator="127.0.0.1") self.queue.add(url="4pRPAbCwgSs", creator="127.0.0.1") self.assertIsNotNone( self.queue.register_vote(url="tGiEsjtfJdg", positive=0, negative=1, creator="127.0.0.2")) self.assertIsNotNone( self.queue.register_vote(url="XFwVfrAURDg", positive=1, negative=0, creator="127.0.0.2")) self.assertIsNotNone( self.queue.register_vote(url="EfuVcRdamCY", positive=1, negative=0, creator="127.0.0.2")) self.assertIsNotNone( self.queue.register_vote(url="4pRPAbCwgSs", positive=1, negative=0, creator="127.0.0.2")) elements = self.queue.getQueue() self.assertEqual(len(elements), 4) for element in elements: if element.get("url") == "tGiEsjtfJdg": self.assertEqual(element.get("positive"), 1) self.assertEqual(element.get("negative"), 1) elif element.get("url") == "XFwVfrAURDg": self.assertEqual(element.get("positive"), 2) self.assertEqual(element.get("negative"), 0) elif element.get("url") == "4pRPAbCwgSs": self.assertEqual(element.get("positive"), 2) self.assertEqual(element.get("negative"), 0)