Beispiel #1
0
def test_execute_raise_invalid_move_error(
        fx_user: User, fx_novice_status: typing.Mapping[str, str]):
    move = fx_user.create_novice(fx_novice_status)
    Block.create(fx_user, [move])
    for move_type in Move.__subclasses__():
        move = fx_user.move(move_type())
        assert not move.block
        assert not move.block_id
        with raises(InvalidMoveError):
            move.execute()
Beispiel #2
0
def test_ensure_block(fx_user: User):
    class ValidMove(Move):
        __mapper_args__ = {
            'polymorphic_identity': 'valid',
        }

    move = fx_user.move(ValidMove())
    Block.create(fx_user, [move])
    assert move.block
    assert move.block_id
    with raises(NotImplementedError):
        move.execute()