def test_guesses_taken_should_increment_if_letter_not_in_word(self):
        expectedGuessesTaken = 2
        game = Game(word='TESTWORD',
                    guessed_word_state=['', '', 'S', '', 'W', 'O', 'R', ''],
                    letters_guessed=['S', 'A', 'W', 'O', 'R', 'C'],
                    guesses_allowed=5,
                    guesses_taken=expectedGuessesTaken)

        game.handleGuess('X')
        self.assertEquals(expectedGuessesTaken + 1, game.guesses_taken)
Esempio n. 2
0
    def test_guessed_word_state_is_unchanged_if_guess_not_in_word(self):
        initialGuessedWordState = ['', '', 'S', '', 'W', 'O', 'R', '']
        game = Game(word='TESTWORD',
                    guessed_word_state=initialGuessedWordState,
                    letters_guessed=['S', 'A', 'W', 'O', 'R', 'C'],
                    guesses_allowed=5,
                    guesses_taken=2)

        game.handleGuess('X')
        self.assertEquals(initialGuessedWordState, game.guessed_word_state)
Esempio n. 3
0
    def test_guessed_word_state_is_updated_with_guessed_letter_in_word(self):
        initialGuessedWordState = ['', '', 'S', '', 'W', 'O', 'R', '']
        expectedGuessedWordState = ['T', '', 'S', 'T', 'W', 'O', 'R', '']
        game = Game(word='TESTWORD',
                    guessed_word_state=initialGuessedWordState,
                    letters_guessed=['S', 'A', 'W', 'O', 'R', 'C'],
                    guesses_allowed=5,
                    guesses_taken=2)

        game.handleGuess('T')
        self.assertEquals(expectedGuessedWordState, game.guessed_word_state)
    def test_is_game_over_is_true_if_all_letters_guessed(self):
        initialLettersGuessed = ['H', 'E', 'L']
        game = Game(word='HELLO',
                    guessed_word_state=['H', 'E', 'L', 'L', ''],
                    letters_guessed=initialLettersGuessed.copy(),
                    guesses_allowed=5,
                    guesses_taken=2)

        guess = 'O'
        game.handleGuess(guess)
        self.assertEqual(game.is_game_over, True)
Esempio n. 5
0
    def test_letters_guessed_should_add_guessed_letter_when_letter_not_in_word(
            self):
        initialLettersGuessed = ['S', 'A', 'W', 'O', 'R', 'C']
        game = Game(word='TESTWORD',
                    guessed_word_state=['', '', 'S', '', 'W', 'O', 'R', ''],
                    letters_guessed=initialLettersGuessed.copy(),
                    guesses_allowed=5,
                    guesses_taken=2)

        guess = 'Q'
        game.handleGuess(guess)
        expectedLettersGuessed = initialLettersGuessed + [guess]
        self.assertEquals(game.letters_guessed, expectedLettersGuessed)
Esempio n. 6
0
    def test_available_letters_should_remove_guessed_letters_when_letter_not_in_word( self ):
        initialLettersAvailable = ['B', 'D', 'E', 'T', 'Q']
        game = Game( 
            word= 'TESTWORD',
            guessed_word_state= ['','','S','','W','O','R',''],
            letters_guessed = ['S', 'A', 'W', 'O', 'R','C'],
            letters_available = initialLettersAvailable,
            guesses_allowed= 5, 
            guesses_taken= 2
        )

        guess = 'Q'

        game.handleGuess(guess)
        expectedLettersAvailable = [letter for letter in initialLettersAvailable if not letter in [guess]]
        self.assertEquals( game.letters_available, expectedLettersAvailable )
Esempio n. 7
0
    def start_game():
        # new_game_id = str()
        new_game = Game()
        new_game.game_id = uuid.uuid4()
        new_game.game_over = False
        new_game.board = GameHandler.serialize_board(
            Connect4Game.create_board())
        new_game.save()

        return Utils.build_reponse(Constants.STATUS_OK, Constants.GAME_READY,
                                   {'game_id': new_game.game_id})
    def setUp(self):
        self.expected_game_data = {
            'guesses_allowed': 5,
            'guesses_taken': 3,
            'letters_guessed': ['A'],
            'guessed_word_state': ['', 'A'],
            'is_game_over': False,
            'id': None
        }

        self.mock_game = Game(
            word="TESTWORD",
            guesses_allowed=self.expected_game_data['guesses_allowed'],
            guesses_taken=self.expected_game_data['guesses_taken'],
            letters_guessed=self.expected_game_data['letters_guessed'],
            guessed_word_state=self.expected_game_data['guessed_word_state'],
            is_game_over=self.expected_game_data['is_game_over'])

        self.request_factory = APIRequestFactory()
        self.mock_get_request = self.request_factory.get('dummy')
Esempio n. 9
0
 def test_init_should_assign_given_word(self):
     game = Game(word="TESTWORD")
     self.assertEquals(game.word, "TESTWORD")
Esempio n. 10
0
 def test_init_should_set_letters_available_to_alphabet(self):
     game = Game(word="TESTWORD")
     self.assertEquals(game.letters_available,
                       list('ABCDEFGHIJKLMNOPQRSTUVWXYZ'))
Esempio n. 11
0
 def test_guessed_word_state_is_only_empty_strings(self):
     testword = "apple"
     game = Game(word=testword)
     self.assertEquals(['', '', '', '', ''], game.guessed_word_state)
Esempio n. 12
0
 def test_guessed_word_state_is_same_length_as_word(self):
     testword = "apple"
     game = Game(word=testword)
     self.assertEquals(len(testword), len(game.guessed_word_state))
Esempio n. 13
0
 def test_word_is_capitalized(self):
     testword = "testword"
     game = Game(word=testword)
     self.assertEquals(testword.upper(), game.word)
Esempio n. 14
0
 def test_word_is_only_letters(self):
     with self.assertRaises(ValidationError):
         game = Game(word="A1B")
         game.full_clean()
Esempio n. 15
0
 def test_word_is_less_than_3_chars(self):
     with self.assertRaises(ValidationError):
         game = Game(word="AA")
         game.full_clean()
Esempio n. 16
0
 def test_word_is_required(self):
     with self.assertRaises(ValidationError):
         game = Game()
         game.full_clean()