Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)