diff --git a/02/game.py b/02/game.py index 5a5ed7d04..03f272bfb 100644 --- a/02/game.py +++ b/02/game.py @@ -28,9 +28,10 @@ def input_word(draw): def _validation(word, draw): + unused_letters = list(draw) # copied because we are mutating the list for char in word.upper(): - if char in draw: - draw.remove(char) + if char in unused_letters: + unused_letters.remove(char) else: raise ValueError("{} is not a valid word!".format(word)) if not word.lower() in DICTIONARY: diff --git a/02/test_game.py b/02/test_game.py index 93888fa1e..b6fb49a61 100644 --- a/02/test_game.py +++ b/02/test_game.py @@ -40,13 +40,15 @@ def test_get_possible_dict_words(self): self.assertEqual(len(words), 137) def test_validation(self): - draw = list('garytev'.upper()) + letters = list('garytev'.upper()) + draw = list(letters) word = 'GARYTEV' self.assertRaises(ValueError, _validation, word, draw) word = 'F' self.assertRaises(ValueError, _validation, word, draw) word = 'GARETTA' self.assertRaises(ValueError, _validation, word, draw) + self.assertEqual(letters, draw) if __name__ == "__main__": unittest.main()