def test_ajax_available(self): """ tests available, owned, bookmark, and unbookmark """ url = reverse("arena.ajax_available") # should be no competitions available response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data["compos"]), 0) # make a competition now = datetime.now() comp = Competition() comp.title = "test compo 123" comp.host = self.skiessi comp.theme = "test theme 123" comp.preview_theme = False comp.rules = "test rules 123" comp.preview_rules = True comp.start_date = now + timedelta(minutes=1) comp.submit_deadline = now + timedelta(minutes=2) comp.listening_party_start_date = comp.submit_deadline comp.listening_party_end_date = comp.listening_party_start_date comp.vote_period_length = 60 # seconds comp.chat_room = ChatRoom.objects.create() comp.save() response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data["compos"]), 1) self.assertEqual(data["compos"][0]["title"], "test compo 123") # compo can't have theme yet because it didn't start yet self.assertEqual(data["compos"][0].has_key("theme"), False) # rules are on preview though self.assertEqual(data["compos"][0]["rules"], "test rules 123") # log in and bookmark the competition self.assertEqual(self.client.login(username="******", password="******"), True) bookmark_url = reverse("arena.ajax_bookmark", args=[comp.id]) response = self.client.get(bookmark_url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(data["success"], True) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data["compos"]), 0) # unbookmark it unbookmark_url = reverse("arena.ajax_unbookmark", args=[comp.id]) response = self.client.get(unbookmark_url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(data["success"], True) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data["compos"]), 1) # delete it comp.delete() # make sure paging works howMany = settings.ITEMS_PER_PAGE * 3 # should be 3 pages for _ in range(howMany): now = datetime.now() comp = Competition() comp.title = "title" comp.host = self.superjoe comp.theme = "theme" comp.preview_theme = True comp.rules = "rules" comp.preview_rules = True comp.start_date = now - timedelta(minutes=1) comp.submit_deadline = now + timedelta(minutes=1) comp.listening_party_start_date = comp.submit_deadline comp.listening_party_end_date = comp.listening_party_start_date comp.vote_period_length = 60 # seconds comp.chat_room = ChatRoom.objects.create() comp.save() # default first page response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data["compos"]), settings.ITEMS_PER_PAGE) self.assertEqual(data["compos"][0]["theme"], "theme") self.assertEqual(data["compos"][0]["rules"], "rules") self.assertEqual(data["compos"][0]["title"], "title") self.assertEqual(data["page_count"], 3) self.assertEqual(data["page_number"], 1) # get second page response = self.client.get(url, {"page": 2}) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data["compos"]), settings.ITEMS_PER_PAGE) self.assertEqual(data["page_count"], 3) self.assertEqual(data["page_number"], 2)
def test_ajax_available(self): """ tests available, owned, bookmark, and unbookmark """ url = reverse('arena.ajax_available') # should be no competitions available response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data['compos']), 0) # make a competition now = datetime.now() comp = Competition() comp.title = "test compo 123" comp.host = self.skiessi comp.theme = "test theme 123" comp.preview_theme = False comp.rules = "test rules 123" comp.preview_rules = True comp.start_date = now + timedelta(minutes=1) comp.submit_deadline = now + timedelta(minutes=2) comp.listening_party_start_date = comp.submit_deadline comp.listening_party_end_date = comp.listening_party_start_date comp.vote_period_length = 60 # seconds comp.chat_room = ChatRoom.objects.create() comp.save() response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data['compos']), 1) self.assertEqual(data['compos'][0]['title'], 'test compo 123') # compo can't have theme yet because it didn't start yet self.assertEqual(data['compos'][0].has_key('theme'), False) # rules are on preview though self.assertEqual(data['compos'][0]['rules'], 'test rules 123') # log in and bookmark the competition self.assertEqual( self.client.login(username="******", password="******"), True) bookmark_url = reverse("arena.ajax_bookmark", args=[comp.id]) response = self.client.get(bookmark_url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(data['success'], True) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data['compos']), 0) # unbookmark it unbookmark_url = reverse("arena.ajax_unbookmark", args=[comp.id]) response = self.client.get(unbookmark_url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(data['success'], True) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data['compos']), 1) # delete it comp.delete() # make sure paging works howMany = settings.ITEMS_PER_PAGE * 3 # should be 3 pages for _ in range(howMany): now = datetime.now() comp = Competition() comp.title = "title" comp.host = self.superjoe comp.theme = "theme" comp.preview_theme = True comp.rules = "rules" comp.preview_rules = True comp.start_date = now - timedelta(minutes=1) comp.submit_deadline = now + timedelta(minutes=1) comp.listening_party_start_date = comp.submit_deadline comp.listening_party_end_date = comp.listening_party_start_date comp.vote_period_length = 60 # seconds comp.chat_room = ChatRoom.objects.create() comp.save() # default first page response = self.client.get(url) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data['compos']), settings.ITEMS_PER_PAGE) self.assertEqual(data['compos'][0]['theme'], 'theme') self.assertEqual(data['compos'][0]['rules'], 'rules') self.assertEqual(data['compos'][0]['title'], 'title') self.assertEqual(data['page_count'], 3) self.assertEqual(data['page_number'], 1) # get second page response = self.client.get(url, {"page": 2}) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(len(data['compos']), settings.ITEMS_PER_PAGE) self.assertEqual(data['page_count'], 3) self.assertEqual(data['page_number'], 2)