def test_max_length_lte_100(self, valid_data):
            with pytest.raises(ValidationError) as excinfo:
                valid_data.update({"msg": "a" * 101})
                CreateTodoItemDto(**valid_data)

            self.assert_validation_error("value_error.any_str.max_length",
                                         excinfo)
Beispiel #2
0
async def replace(
    user: UserRegistry, dto: CreateTodoItemDto, id_: int
) -> Optional[TodoItem]:
    if not await exists_by_id(id_):
        return None

    values = dto.dict()
    query = (
        TodoItemModel.update()
        .where(TodoItemModel.c.id == id_)
        .where(TodoItemModel.c.user_id == user.id)
        .values(**values)
    )
    await database.execute(query)
    return TodoItem.parse_obj({**values, "id": id_, "user_id": user.id})
 def test_default_is_false(self, valid_data):
     valid_data.pop("is_done")
     entity = CreateTodoItemDto(**valid_data)
     assert entity.is_done is False
        def test_must_be_bool(self, valid_data):
            with pytest.raises(ValidationError) as excinfo:
                valid_data.update({"is_done": "some bool"})
                CreateTodoItemDto(**valid_data)

            self.assert_validation_error("type_error.bool", excinfo)
        def test_is_required(self, valid_data):
            with pytest.raises(ValidationError) as excinfo:
                valid_data.pop("msg")
                CreateTodoItemDto(**valid_data)

            self.assert_validation_error("value_error.missing", excinfo)
        def test_must_be_str(self, valid_data):
            with pytest.raises(ValidationError) as excinfo:
                valid_data.update({"msg": ["some string"]})
                CreateTodoItemDto(**valid_data)

            self.assert_validation_error("type_error.str", excinfo)
 def test_immutability(self, valid_data):
     entity = CreateTodoItemDto(**valid_data)
     for key in entity.dict().keys():
         with pytest.raises(TypeError):
             setattr(entity, key, "some value")
 def test_invalidation(self, invalid_data):
     with pytest.raises(ValidationError):
         CreateTodoItemDto(**invalid_data)
 def test_validation(self, valid_data):
     assert CreateTodoItemDto(**valid_data)
Beispiel #10
0
async def persist(user: UserRegistry, dto: CreateTodoItemDto) -> TodoItem:
    values = {**dto.dict(), "user_id": user.id}
    query = TodoItemModel.insert().values(**values)

    last_record_id = await database.execute(query)
    return TodoItem.parse_obj({**values, "id": last_record_id})