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"
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 ]
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")
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
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
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}