예제 #1
0
def test_game_loses_several_guesses():
    game = HangmanGame(['Python'], number_of_guesses=3)

    attempt = game.guess('x')  # Miss!
    assert attempt.is_miss() is True
    assert game.remaining_misses == 2
    assert game.previous_guesses == ['x']
    assert game.word.masked == '******'

    attempt = game.guess('z')  # Miss!
    assert attempt.is_miss() is True
    assert game.remaining_misses == 1
    assert game.previous_guesses == ['x', 'z']
    assert game.word.masked == '******'

    with pytest.raises(GameLostException):
        game.guess('a')  # Miss!

    assert game.is_finished() is True
    assert game.is_lost() is True
    assert game.is_won() is False

    assert game.remaining_misses == 0
    assert game.previous_guesses == ['x', 'z', 'a']
    assert game.word.masked == '******'
예제 #2
0
def test_game_wins_several_moves(): #pass
    game = HangmanGame(['abc'])

    attempt = game.guess('a')
    assert attempt.is_hit() is True
    assert game.remaining_misses == 5
    assert game.previous_guesses == ['a']
    assert game.word.masked == 'a**'

    attempt = game.guess('c')
    assert attempt.is_hit() is True
    assert game.remaining_misses == 5
    assert game.previous_guesses == ['a', 'c']
    assert game.word.masked == 'a*c'

    with pytest.raises(GameWonException):
        game.guess('b')

    assert game.is_finished() is True
    assert game.is_won() is True
    assert game.is_lost() is False

    assert game.remaining_misses == 5
    assert game.previous_guesses == ['a', 'c', 'b']
    assert game.word.masked == 'abc'
예제 #3
0
def test_game_already_lost_raises_game_finished():
    game = HangmanGame(['Python'], number_of_guesses=1)

    with pytest.raises(GameLostException):
        game.guess('x')  # Miss!

    assert game.is_finished() is True
    assert game.is_lost() is True
    assert game.is_won() is False

    with pytest.raises(GameFinishedException):
        game.guess('n')
예제 #4
0
def test_game_already_won_raises_game_finished():
    game = HangmanGame(['aaa'])

    with pytest.raises(GameWonException):
        game.guess('a')

    assert game.is_finished() is True
    assert game.is_won() is True
    assert game.is_lost() is False

    with pytest.raises(GameFinishedException):
        game.guess('x')
예제 #5
0
def test_game_wins_first_try():
    game = HangmanGame(['aaa'])
    with pytest.raises(GameWonException):
        game.guess('a')

    assert game.is_finished() is True
    assert game.is_won() is True
    assert game.is_lost() is False

    assert game.remaining_misses == 5
    assert game.previous_guesses == ['a']
    assert game.word.masked == 'aaa'
예제 #6
0
def test_game_loses_first_try(): #pass
    game = HangmanGame(['Python'], number_of_guesses=1)

    with pytest.raises(GameLostException):
        game.guess('x')  # Miss!

    assert game.is_finished() is True
    assert game.is_lost() is True
    assert game.is_won() is False

    assert game.remaining_misses == 0
    assert game.previous_guesses == ['x']
    assert game.word.masked == '******'