Пример #1
0
def test_assign_location_multiple_times(user: User, object: Object):
    object_location_assignments = locations.get_object_location_assignments(
        object.id)
    assert object_location_assignments == []
    location1 = locations.create_location("Location",
                                          "This is an example location", None,
                                          user.id)
    location2 = locations.create_location("Location",
                                          "This is an example location", None,
                                          user.id)
    locations.assign_location_to_object(
        object.id, location1.id, None, user.id,
        "This object is stored at this location")
    locations.assign_location_to_object(
        object.id, location2.id, None, user.id,
        "This object is stored at another location")
    assert len(locations.get_object_location_assignments(object.id)) == 2
    object_location_assignment1, object_location_assignment2 = locations.get_object_location_assignments(
        object.id)
    assert object_location_assignment1.object_id == object.id
    assert object_location_assignment1.location_id == location1.id
    assert object_location_assignment1.user_id == user.id
    assert object_location_assignment1.description == "This object is stored at this location"
    assert object_location_assignment2.object_id == object.id
    assert object_location_assignment2.location_id == location2.id
    assert object_location_assignment2.user_id == user.id
    assert object_location_assignment2.description == "This object is stored at another location"
Пример #2
0
def test_assign_location(user: User, object: Object):
    object_location_assignment = locations.get_current_object_location_assignment(
        object.id)
    assert object_location_assignment is None
    location = locations.create_location("Location",
                                         "This is an example location", None,
                                         user.id)
    locations.assign_location_to_object(
        object.id, location.id, None, user.id,
        "This object is stored at this location")
    object_location_assignment = locations.get_current_object_location_assignment(
        object.id)
    assert object_location_assignment.object_id == object.id
    assert object_location_assignment.location_id == location.id
    assert object_location_assignment.user_id == user.id
    assert object_location_assignment.description == "This object is stored at this location"
    user_log_entries = user_log.get_user_log_entries(user.id)
    assert [
        e for e in user_log_entries
        if e.data.get('object_location_assignment_id',
                      -1) == object_location_assignment.id
        and e.type == UserLogEntryType.ASSIGN_LOCATION
    ]
    object_log_entries = object_log.get_object_log_entries(object.id)
    assert [
        e for e in object_log_entries
        if e.data.get('object_location_assignment_id',
                      -1) == object_location_assignment.id
        and e.type == ObjectLogEntryType.ASSIGN_LOCATION
    ]
Пример #3
0
def test_assign_location_to_object_which_does_not_exist(user: User):
    location = locations.create_location("Location",
                                         "This is an example location", None,
                                         user.id)
    with pytest.raises(errors.ObjectDoesNotExistError):
        locations.assign_location_to_object(
            42, location.id, None, user.id,
            "This object is stored at this location")
Пример #4
0
def test_assign_location_which_does_not_exist(user: User, object: Object):
    with pytest.raises(errors.LocationDoesNotExistError):
        locations.assign_location_to_object(
            object.id, 42, None, user.id,
            "This object is stored at this location")
    object_location_assignment = locations.get_current_object_location_assignment(
        object.id)
    assert object_location_assignment is None
Пример #5
0
def test_object_responsibility_confirmation(user: User, object: Object, app):
    other_user = User(name='Other User',
                      email="*****@*****.**",
                      type=UserType.PERSON)
    sampledb.db.session.add(other_user)
    sampledb.db.session.commit()
    server_name = app.config['SERVER_NAME']
    app.config['SERVER_NAME'] = 'localhost'
    with app.app_context():
        locations.assign_location_to_object(object.id, None, user.id,
                                            other_user.id, "")
    app.config['SERVER_NAME'] = server_name
    object_location_assignment = locations.get_current_object_location_assignment(
        object.id)
    assert not object_location_assignment.confirmed
    locations.confirm_object_responsibility(object_location_assignment.id)
    object_location_assignment = locations.get_current_object_location_assignment(
        object.id)
    assert object_location_assignment.confirmed
Пример #6
0
def test_object_ids_for_location(user: User, action: Action):
    data = {'name': {'_type': 'text', 'text': 'Object'}}
    object1 = objects.create_object(user_id=user.id,
                                    action_id=action.id,
                                    data=data)
    object2 = objects.create_object(user_id=user.id,
                                    action_id=action.id,
                                    data=data)
    object3 = objects.create_object(user_id=user.id,
                                    action_id=action.id,
                                    data=data)
    location1 = locations.create_location("Location",
                                          "This is an example location", None,
                                          user.id)
    location2 = locations.create_location("Location",
                                          "This is an example location", None,
                                          user.id)
    assert locations.get_object_ids_at_location(location1.id) == set()
    assert locations.get_object_ids_at_location(location2.id) == set()
    locations.assign_location_to_object(object1.id, location1.id, None,
                                        user.id, "")
    assert locations.get_object_ids_at_location(location1.id) == {object1.id}
    assert locations.get_object_ids_at_location(location2.id) == set()
    locations.assign_location_to_object(object2.id, location1.id, None,
                                        user.id, "")
    assert locations.get_object_ids_at_location(
        location1.id) == {object1.id, object2.id}
    assert locations.get_object_ids_at_location(location2.id) == set()
    locations.assign_location_to_object(object3.id, location2.id, user.id,
                                        user.id, "")
    assert locations.get_object_ids_at_location(
        location1.id) == {object1.id, object2.id}
    assert locations.get_object_ids_at_location(location2.id) == {object3.id}