def test_post_returns_forbidden_for_not_authorized_user(self): user1 = Helpers.getUser(user_data=Helpers.USER1) composition = Helpers.getComposition(artist=user1) url = '/compositions/{0}/interpretations'.format(composition.id) response = self.client.post(url, data={}) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual( response.data, {"detail": "Authentication credentials were not provided."})
def test_delete_return_forbidden_for_non_authenticated_user(self): user1 = Helpers.getUser(user_data=Helpers.USER1) composition = Helpers.getComposition(artist=user1) interpretation = Interpretation.objects.create( user=user1, composition=composition, interpretation="interpretation1" ) url = "/compositions/{0}/interpretations/{1}".format(composition.id, interpretation.id) response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_delete_returns_forbidden_for_user_not_interpretationer(self): user1 = Helpers.getUser(user_data=Helpers.USER1) Helpers.getUser(user_data=Helpers.USER2) composition = Helpers.getComposition(artist=user1) interpretation = Interpretation.objects.create( user=user1, composition=composition, interpretation="interpretation1" ) url = "/compositions/{0}/interpretations/{1}".format(composition.id, interpretation.id) self.client.login(username="******", password="******") response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_post_for_authenticated_user_empty_interpretation(self): user1 = Helpers.getUser(user_data=Helpers.USER1) Helpers.getUser(user_data=Helpers.USER2) composition = Helpers.getComposition(artist=user1) interpretation_data = {'interpretation': ''} url = '/compositions/{0}/interpretations'.format(composition.id) self.client.login(username='******', password='******') response = self.client.post(url, data=interpretation_data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual( response.data, {"interpretation": ["This field is required."]})
def test_delete_for_autheticated_valid_interpretationer(self): user1 = Helpers.getUser(user_data=Helpers.USER1) Helpers.getUser(user_data=Helpers.USER2) composition = Helpers.getComposition(artist=user1) interpretation = Interpretation.objects.create( user=user1, composition=composition, interpretation="interpretation1" ) url = "/compositions/{0}/interpretations/{1}".format(composition.id, interpretation.id) self.client.login(username="******", password="******") response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(Interpretation.objects.all().count(), 0)
def test_post_authenticated_user_valid_post_data(self): user1 = Helpers.getUser(user_data=Helpers.USER1) user2 = Helpers.getUser(user_data=Helpers.USER2) composition = Helpers.getComposition(artist=user1) interpretation_data = {'interpretation': 'interpretation1'} url = '/compositions/{0}/interpretations'.format(composition.id) self.client.login(username='******', password='******') response = self.client.post(url, data=interpretation_data) self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.data, self.createResponse( 1, 'interpretation1', user2.id, composition.id, datetime.now())) self.assertEqual(Interpretation.objects.get(pk=1).interpretation, interpretation_data["interpretation"]) self.assertEqual(Interpretation.objects.all().count(), 1)
def test_update_for_autheticated_valid_interpretationer(self): user1 = Helpers.getUser(user_data=Helpers.USER1) Helpers.getUser(user_data=Helpers.USER2) composition = Helpers.getComposition(artist=user1) interpretation = Interpretation.objects.create( user=user1, composition=composition, interpretation="interpretation1" ) interpretation_data = {"interpretation": "interpretation2"} url = "/compositions/{0}/interpretations/{1}".format(composition.id, interpretation.id) self.client.login(username="******", password="******") response = self.client.put(url, data=interpretation_data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual( response.data, self.createResponse(1, "interpretation2", user1.id, composition.id, interpretation.created) ) self.assertEqual(Interpretation.objects.all().count(), 1) self.assertEqual(Interpretation.objects.get(pk=1).interpretation, interpretation_data["interpretation"])
def test_get_returns_all_interpretations_for_composition(self): user1 = Helpers.getUser(user_data=Helpers.USER1) user2 = Helpers.getUser(user_data=Helpers.USER2) composition = Helpers.getComposition(artist=user1) interpretation1 = Interpretation.objects.create( user=user1, composition=composition, interpretation='interpretation1') interpretation2 = Interpretation.objects.create( user=user1, composition=composition, interpretation='interpretation2') interpretation3 = Interpretation.objects.create( user=user2, composition=composition, interpretation='interpretation3') url = '/compositions/{0}/interpretations'.format(composition.id) response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) expected_response = [ self.createResponse(1, 'interpretation1', user1.id, composition.id, interpretation1.created)] expected_response.append( self.createResponse(2, 'interpretation2', user1.id, composition.id, interpretation2.created)) expected_response.append( self.createResponse(3, 'interpretation3', user2.id, composition.id, interpretation3.created)) self.assertEqual(response.data, expected_response)