def test_user_turn_1(self):
     mock_dbutil = mock.MagicMock()
     mock_dbutil.fetch_optimal_word_from_dictionary.return_value = False
     with mock.patch("main.DBUtil", return_value=mock_dbutil):
         wordchain = WordChain("test_dictionary.txt")
         ret = wordchain.user_turn()
     self.assertEqual(ret, ["", 1])
 def test_user_turn_2(self):
     mock_dbutil = mock.MagicMock()
     mock_dbutil.fetch_optimal_word_from_dictionary.return_value = "hash"
     mock_dbutil.confirm_word_in_dictionary.side_effect = [False, "hello"]
     mock_dbutil.compare_start_and_end.return_value = False
     with mock.patch("main.DBUtil", return_value=mock_dbutil), \
          mock.patch("main.WordChain.user_input", return_value="hello"):
         wordchain = WordChain("test_dictionary.txt")
         ret = wordchain.user_turn()
     self.assertEqual(ret, ["hello", 2])