def test_findEvent_finds_multiple_events(rf): """Check that findEvent returns the newest event if a LinkObject is associated with multiple Events. """ # Create two events. Specify a datetime for the second event to assert # that the two events will not end up with the same event_date_time. We # will use that attribute to sort them later. datetime_obj = timezone.now().replace(year=2015, month=1, day=1) event1 = factories.EventFactory.create(linking_objects=True) event2 = factories.EventFactory.create(event_date_time=datetime_obj) # Get one of the related LinkObjects from event1 and add it to event2. linking_object = event1.linking_objects.first() event2.linking_objects.add(linking_object) event2.save() request = rf.get('/') response = views.findEvent(request, linking_object.object_identifier) # Determine which event is the oldest. new_event, old_event = sorted([event1, event2], key=lambda e: e.event_date_time) # Check that only the oldest event is present in the xml content. assert old_event.event_identifier in response.content assert new_event.event_identifier not in response.content
def test_findEvent_response_content_type(rf): event = factories.EventFactory.create(linking_objects=True) request = rf.get('/') linking_object = event.linking_objects.first() response = views.findEvent(request, linking_object.object_identifier) assert response.get('Content-Type') == 'application/atom+xml'
def test_findEvent_returns_not_found(rf): request = rf.get('/') response = views.findEvent(request, 'fake-identifier') assert response.status_code == 404
def test_findEvent_returns_ok(rf): event = factories.EventFactory.create(linking_objects=True) request = rf.get('/') linking_object = event.linking_objects.first() response = views.findEvent(request, linking_object.object_identifier) assert response.status_code == 200