diff --git a/webapp/tests/test_event.py b/webapp/tests/test_event.py index a64aa91..1827b02 100644 --- a/webapp/tests/test_event.py +++ b/webapp/tests/test_event.py @@ -9,6 +9,8 @@ from webapp.serializers import EventSerializer from webapp.tests.tag_fixture import tagBuilder, createTagIcon from webapp.tests.event_fixture import createEventObject, createEventJSON +URL = "/api/events/" + class EventTestCase(APITestCase): @@ -45,9 +47,9 @@ class EventTestCase(APITestCase): username, password = "test_admin", "password123" self.authClient = User.objects.create_superuser(username, "myemail@test.com", password) - def test_get_events(self): + def test_get_current_events(self): # Get from API - response = self.client.get("/api/events/", format="json") + response = self.client.get(URL, format="json") # Response 200 self.assertTrue(response.status_code, status.HTTP_200_OK) # Response should not have old events and invisible @@ -62,8 +64,22 @@ class EventTestCase(APITestCase): ) self.assertEqual(response.data["results"], expected_events.data) + def test_get_events_since(self): + response = self.client.get(f"{URL}?since=2018-01-01", format="json") + self.assertTrue(response.status_code, status.HTTP_200_OK) + self.assertEqual(len(response.data["results"]), 3) + + expected_events = EventSerializer( + Event.objects.filter(title_fi__in=("Testitapahtuma1", "Testitapahtuma3", "Testitapahtuma4")).order_by("start_time"), + many=True, + context={ + "request": APIRequestFactory().get(r"http://testserver/api/events/") + } + ) + self.assertEqual(response.data["results"], expected_events.data) + def test_get_single_event(self): - response = self.client.get(f"/api/events/{self.testEventId}/", format="json") + response = self.client.get(f"{URL}{self.testEventId}/", format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) serializer = EventSerializer( @@ -75,14 +91,14 @@ class EventTestCase(APITestCase): self.assertEqual(response.data, serializer.data) def test_get_invalid_event(self): - response = self.client.get("/api/events/200/", format="json") + response = self.client.get("{URL}200/", format="json") self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) def test_post_event(self): # Authenticate self.client.force_authenticate(user=self.authClient) response = self.client.post( - "/api/events/", + URL, createEventJSON(tag_id=[self.testTagId]), format="json" ) @@ -92,7 +108,7 @@ class EventTestCase(APITestCase): def test_post_event_unauth(self): response = self.client.post( - "/api/events/", + URL, createEventJSON(tag_id=[self.testTagId]), format="json" ) @@ -106,7 +122,7 @@ class EventTestCase(APITestCase): event = Event.objects.get(id=self.testEventId) new = createEventJSON(name="Update1") response = self.client.put( - f"/api/events/{self.testEventId}/", + f"{URL}{self.testEventId}/", new, format="json" ) @@ -118,7 +134,7 @@ class EventTestCase(APITestCase): def test_update_event_unauth(self): response = self.client.put( - f"/api/events/{self.testEventId}/", + f"{URL}{self.testEventId}/", createEventJSON(name="Update1"), format="json" ) @@ -129,12 +145,12 @@ class EventTestCase(APITestCase): self.assertEqual(Event.objects.count(), 4) def test_delete_event(self): - response = self.client.delete(f"/api/events/{self.testEventId}/",) + response = self.client.delete(f"{URL}{self.testEventId}/",) self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) self.assertEqual(Event.objects.count(), 4) # Authenticate self.client.force_authenticate(user=self.authClient) - response = self.client.delete(f"/api/events/{self.testEventId}/") + response = self.client.delete(f"{URL}{self.testEventId}/") self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(Event.objects.count(), 3)