Exemplo n.º 1
0
    def test_get_for_non_existing_interpretation(self):
        Helpers.createComposition()
        url = '/compositions/1/interpretations/1/comments'

        response = self.client.get(url)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.data, [])
Exemplo n.º 2
0
    def test_get_throws_forbidden_when_user_not_authenticated(self):
        user = Helpers.getUser(Helpers.USER1)
        composition1 = Helpers.createComposition(user)
        composition2 = Helpers.createComposition(user)
        user.bookmarks.add(composition1, composition2)
        url = self.url.format(user.id)

        response = self.client.get(url)

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Exemplo n.º 3
0
    def test_delete_throws_forbidden_for_not_authenticated_user(self):
        user = Helpers.getUser(Helpers.USER1)
        composition1 = Helpers.createComposition(user)
        composition2 = Helpers.createComposition(user)
        user.bookmarks.add(composition1, composition2)
        bookmark_data = {'bookmarks': [composition2.id]}
        url = self.url.format(user.id)

        response = self.client.delete(url, data=bookmark_data, format="json")

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
        self.assertEqual(user.bookmarks.all().count(), 2)
Exemplo n.º 4
0
    def test_get_throws_forbidden_when_user_not_himself(self):
        user = Helpers.getUser(Helpers.USER1)
        other_user = Helpers.getUser(Helpers.USER2)
        composition1 = Helpers.createComposition(user)
        composition2 = Helpers.createComposition(user)
        user.bookmarks.add(composition1, composition2)
        url = self.url.format(user.id)

        self.client.login(
            username=other_user.email, password=Helpers.USER2["password"])
        response = self.client.get(url)

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Exemplo n.º 5
0
    def test_delete_removes_bookmark_for_valid_authenticated_user(self):
        user = Helpers.getUser(Helpers.USER1)
        composition1 = Helpers.createComposition(user)
        composition2 = Helpers.createComposition(user)
        user.bookmarks.add(composition1, composition2)
        bookmark_data = {'bookmarks': [composition2.id]}
        url = self.url.format(user.id)

        self.client.login(
            username=user.email, password=Helpers.USER1["password"])
        response = self.client.delete(url, data=bookmark_data, format="json")

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(user.bookmarks.all().count(), 1)
Exemplo n.º 6
0
    def test_delete_throws_400_for_invalid_data(self):
        user = Helpers.getUser(Helpers.USER1)
        composition1 = Helpers.createComposition(user)
        composition2 = Helpers.createComposition(user)
        user.bookmarks.add(composition1, composition2)
        url = self.url.format(user.id)

        self.client.login(
            username=user.email, password=Helpers.USER1["password"])
        response = self.client.delete(url)

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(
            response.data, {"bookmarks": "This field is required"})
        self.assertEqual(user.bookmarks.all().count(), 2)
Exemplo n.º 7
0
    def test_post_works_with_multiple_bookmarks_some_already_exist(self):
        user = Helpers.getUser(Helpers.USER1)
        composition1 = Helpers.createComposition(user)
        composition2 = Helpers.createComposition(user)
        composition3 = Helpers.createComposition(user)
        user.bookmarks.add(composition3)
        bookmark_data = {'bookmarks': [composition1.id, composition2.id]}
        url = self.url.format(user.id)

        self.client.login(
            username=user.email, password=Helpers.USER1["password"])
        response = self.client.post(url, data=bookmark_data, format="json")

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(user.bookmarks.all().count(), 3)
Exemplo n.º 8
0
    def test_get_returns_all_user_bookmarks(self):
        user = Helpers.getUser(Helpers.USER1)
        composition1 = Helpers.createComposition(user)
        composition2 = Helpers.createComposition(user)
        user.bookmarks.add(composition1, composition2)
        url = self.url.format(user.id)

        self.client.login(
            username=user.email, password=Helpers.USER1["password"])
        response = self.client.get(url)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        expected_response = [
            self.createReponseBookmark(1, user.id, composition1.created)]
        expected_response.append(
            self.createReponseBookmark(2, user.id, composition2.created))
        self.assertEqual(response.data, {'bookmarks': expected_response})
Exemplo n.º 9
0
    def test_delete_for_multiple_bookmarks_all_not_existing(self):
        user = Helpers.getUser(Helpers.USER1)
        composition1 = Helpers.createComposition(user)
        composition2 = Helpers.createComposition(user)
        composition3 = Helpers.createComposition(user)
        composition4 = Helpers.createComposition(user)
        user.bookmarks.add(
            composition1, composition2, composition3, composition4)
        bookmark_data = {
            'bookmarks': [composition2.id, 23, composition1.id, 59, 34]}
        url = self.url.format(user.id)

        self.client.login(
            username=user.email, password=Helpers.USER1["password"])
        response = self.client.delete(url, data=bookmark_data, format="json")

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(user.bookmarks.all().count(), 2)
Exemplo n.º 10
0
    def test_post_adds_bookmark_for_valid_authenticated_user(self):
        user = Helpers.getUser(Helpers.USER1)
        composition = Helpers.createComposition(user)
        bookmark_data = {'bookmarks': [composition.id]}
        url = self.url.format(user.id)

        self.client.login(
            username=user.email, password=Helpers.USER1["password"])
        response = self.client.post(url, bookmark_data, format="json")

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(user.bookmarks.all().count(), 1)
Exemplo n.º 11
0
    def test_post_throws_forbidden_for_authenticated_user_not_himself(self):
        user = Helpers.getUser(Helpers.USER1)
        other_user = Helpers.getUser(Helpers.USER2)
        composition = Helpers.createComposition(user)
        bookmark_data = {'bookmarks': [composition.id]}
        url = self.url.format(user.id)

        self.client.login(
            username=other_user.email, password=Helpers.USER2["password"])
        response = self.client.post(url, bookmark_data, format="json")

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
        self.assertEqual(user.bookmarks.all().count(), 0)
Exemplo n.º 12
0
    def test_delete_for_non_existing_bookmark_does_not_crash(self):
        user = Helpers.getUser(Helpers.USER1)
        composition1 = Helpers.createComposition(user)
        user.bookmarks.add(composition1)
        bookmark_data = {'bookmarks': [56, 89]}
        url = self.url.format(user.id)

        self.client.login(
            username=user.email, password=Helpers.USER1["password"])
        response = self.client.delete(url, data=bookmark_data, format="json")

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(user.bookmarks.all().count(), 1)
Exemplo n.º 13
0
    def test_post_for_already_added_bookmark_acts_same_as_adding_new(self):
        user = Helpers.getUser(Helpers.USER1)
        composition = Helpers.createComposition(user)
        user.bookmarks.add(composition)
        bookmark_data = {'bookmarks': [composition.id]}
        url = self.url.format(user.id)

        self.client.login(
            username=user.email, password=Helpers.USER1["password"])
        response = self.client.post(url, bookmark_data, format="json")

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(user.bookmarks.all().count(), 1)
Exemplo n.º 14
0
 def createVote(self):
     composition = Helpers.createComposition()
     return Vote.objects.get(composition=composition)