예제 #1
0
    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)
예제 #2
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)
예제 #3
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')
예제 #4
0
 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')
예제 #5
0
    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')
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
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')
예제 #9
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')