def test_mixed_guess_casing(self): with hangman_app.test_client() as client: data = {'username': '******', 'password': '******'} client.post('/login', data=data, follow_redirects=True) guesses = controller.get_guesses(flask.session['guesses_id']) for guess in range(0, guesses.possible_guesses()): data = {'guess': 'AbCdEfGhIjKlMnOpQrStUvWxYz'[guess]} client.post('/play', data=data, follow_redirects=True) guesses = controller.get_guesses(flask.session['guesses_id']) self.assertEqual(guesses.remaining_guesses, 0)
def test_possible_guesses(self): with hangman_app.test_client() as client: data = {'username': '******', 'password': '******'} client.post('/login', data=data, follow_redirects=True) guesses = controller.get_guesses(flask.session['guesses_id']) for guess in range(0, guesses.possible_guesses()): data = {'guess': 'abcdefghijklmnopqrstuvwxyz'[guess]} client.post('/play', data=data, follow_redirects=True) guesses = controller.get_guesses(flask.session['guesses_id']) self.assertEqual(guesses.remaining_guesses, 0)
def test_redirect_play_to_win(self): with hangman_app.test_client() as client: data = {'username':'******', 'password':'******', 'confirm_password':'******'} client.post('/signup', data=data, follow_redirects=True) answer=get_guesses(flask.session['guesses_id']).answer for letter in set(answer): resp=client.post('/play', data={'guess':letter}, follow_redirects=True) path=flask.request.path self.assertEqual(path, '/win')
def test_win_redirect(self): with hangman_app.test_client() as client: data = {'username': '******', 'password': '******'} client.post('/signup', data=data, follow_redirects=True) answer = get_guesses(flask.session['guesses_id']).answer for letter in answer: client.post('/play', data={'guess': letter}, follow_redirects=True) path = flask.request.path self.assertEqual(path, '/win')
def test_win_loss_redirect(self): with hangman_app.test_client() as client: data = {'username': '******', 'password': '******'} client.post('/login', data=data, follow_redirects=True) guesses = controller.get_guesses(flask.session['guesses_id']) for guess in range(0, guesses.possible_guesses()): data = {'guess': 'abcdefghijklmnopqrstuvwxyz'[guess]} client.post('/play', data=data, follow_redirects=True) path = flask.request.path self.assertIn(path, '/win/loss')
def test_answer_cheat(self): with hangman_app.test_client() as client: data = {'username':'******', 'password':'******'} client.post('/login', data=data, follow_redirects=True) client.post('/play', data={'guess':'a'}, follow_redirects=True) client.get('/play', query_string={'answer':'hello'}, follow_redirects=True) guesses=get_guesses(flask.session['guesses_id']) game=guesses.game self.assertEqual(game.answer, 'hello') self.assertEqual(guesses.answer, 'hello') self.assertEqual(guesses.correct_guesses, '___ ___ ___ ___ ___') self.assertEqual(guesses.incorrect_guesses, '') self.assertEqual(guesses.remaining_guesses, 5)
def test_scores_update(self): with hangman_app.test_client() as client: data = {'username': '******', 'password': '******'} client.post('/login', data=data, follow_redirects=True) guesses = controller.get_guesses(flask.session['guesses_id']) for guess in range(0, guesses.possible_guesses()): data = {'guess': 'abcdefghijklmnopqrstuvwxyz'[guess]} client.post('/play', data=data, follow_redirects=True) resp = client.get('/scores', follow_redirects=True) user = controller.get_user('game_test') self.assertEqual(resp.status, '200 OK') self.assertTrue(user.wins > 0 or user.loses > 0)
def test_loss_redirect(self): with hangman_app.test_client() as client: data = {'username':'******', 'password':'******'} client.post('/signup', data=data, follow_redirects=True) answer=get_guesses(flask.session['guesses_id']).answer alphabet_i = 0 answer_i = 0 while len(answer) > answer_i: if answer[answer_i] != alphabet[alphabet_i]: client.post('/play', data={'guess':alphabet[answer_i]}, follow_redirects=True) answer_i += 1 else: alphabet_i += 1 path=flask.request.path self.assertEqual(path, '/loss')
def test_loss_redirect(self): with hangman_app.test_client() as client: data = {'username': '******', 'password': '******'} client.post('/signup', data=data, follow_redirects=True) answer = get_guesses(flask.session['guesses_id']).answer alphabet_i = 0 answer_i = 0 while len(answer) > answer_i: if answer[answer_i] != alphabet[alphabet_i]: client.post('/play', data={'guess': alphabet[answer_i]}, follow_redirects=True) answer_i += 1 else: alphabet_i += 1 path = flask.request.path self.assertEqual(path, '/loss')