示例#1
0
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
示例#2
0
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'
示例#3
0
def test_findEvent_returns_not_found(rf):
    request = rf.get('/')
    response = views.findEvent(request, 'fake-identifier')
    assert response.status_code == 404
示例#4
0
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