Ejemplo n.º 1
0
    def setUpClass(cls):
        db.create_all()
        Word.add_words()

        cls.client = hangman_app.test_client()
        data = {'username':'******', 'password':'******', 'confirm_password':'******'}
        cls.client.post('/signup', data=data, follow_redirects=True)
Ejemplo n.º 2
0
    def setUpClass(self):
        model.db.session.remove()
        model.db.drop_all()
        model.db.create_all()
        model.Word.add_words()

        self.client = hangman_app.test_client()
        data = {'username': '******', 'password': '******'}
        self.client.post('/signup', data=data, follow_redirects=True)
Ejemplo n.º 3
0
    def test_game_does_not_persist_after_logout(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('/logout')

            data = {'username':'******', 'password':'******'}
            resp=client.post('/login', data=data, follow_redirects=True)
Ejemplo n.º 4
0
    def setUpClass(self):
        model.db.session.remove()
        model.db.drop_all()
        model.db.create_all()
        model.Word.add_words()

        self.client = hangman_app.test_client()
        data = {'username':'******', 'password':'******'}
        self.client.post('/signup', data=data, follow_redirects=True)
Ejemplo n.º 5
0
 def setUp(self):
     words_short = ''.join(self.words_full[0:5])
     with open("hangman/words.txt", "w") as f:
         f.write(words_short)
     db.create_all()
     Word.add_words()
     self.client = hangman_app.test_client()
     data = {'username':'******', 'password':'******', 'confirm_password':'******'}
     self.client.post('/signup', data=data, follow_redirects=True)
Ejemplo n.º 6
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')
Ejemplo n.º 7
0
    def test_game_does_not_persist_after_logout(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('/logout')

            data = {'username': '******', 'password': '******'}
            resp = client.post('/login', data=data, follow_redirects=True)
Ejemplo n.º 8
0
    def test_new_game_on_login(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)
            first_game=get_game(flask.session['game_id'])
            client.get('/logout')

            client.post('/login', data=data, follow_redirects=True)
            second_game=get_game(flask.session['game_id'])
            self.assertNotEqual(first_game, second_game)
Ejemplo n.º 9
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')
Ejemplo n.º 10
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)
Ejemplo n.º 11
0
    def setUpClass(self):
        model.db.session.remove()
        model.db.drop_all()
        model.db.create_all()
        words = open("hangman/words.txt", "r").read().split("\n")
        for word in words:
            model.db.session.add(model.Word(word))
        model.db.session.commit()

        self.client = hangman_app.test_client()
        data = {'username': '******', 'password': '******'}
        self.client.post('/signup', data=data, follow_redirects=True)
Ejemplo n.º 12
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)
Ejemplo n.º 13
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')
Ejemplo n.º 14
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)
Ejemplo n.º 15
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)
Ejemplo n.º 16
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')
Ejemplo n.º 17
0
    def test_no_repeat_words(self):
        with hangman_app.test_client() as client:
            data = {'username':'******', 'password':'******', 'confirm_password':'******'}
            client.post('/signup', data=data)
            i = 1
            total_words = Word.query.count()
            while i <= total_words:
                client.get('/play', follow_redirects=True)
                answer=get_game(flask.session['game_id']).answer
                for letter in set(answer):
                    client.post('/play', data={'guess':letter}, follow_redirects=True)
                i+=1

            user_words = [game.answer for game in get_user(flask.session['user_id']).games]
            all_words = [word.word for word in Word.query.all()]
            self.assertEqual(sorted(user_words), sorted(all_words))
Ejemplo n.º 18
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')
Ejemplo n.º 19
0
 def test_logout_login_redirect(self):
     with hangman_app.test_client() as client:
         data = {'username':'******', 'password':'******'}
         client.post('/login', data=data, follow_redirects=True)
         client.get('/logout', follow_redirects=True)
         self.assertEqual(flask.request.path, '/login')
Ejemplo n.º 20
0
 def test_index_redirect(self):
     with hangman_app.test_client() as client:
         resp = client.get('/', follow_redirects=True)
         self.assertEqual(flask.request.path, '/login')
Ejemplo n.º 21
0
 def test_signup_play_redirect(self):
     with hangman_app.test_client() as client:
         data = {'username':'******', 'password':'******'}
         resp = client.post('/signup', data=data, follow_redirects=True)
         path=flask.request.path
         self.assertEqual(path, '/play')
Ejemplo n.º 22
0
 def test_login_unknown_user_signup_redirect(self):
     with hangman_app.test_client() as client:
         data = {'username':'******', 'password':'******'}
         resp = client.post('/login', data=data, follow_redirects=True)
         self.assertEqual(flask.request.path, '/signup')
Ejemplo n.º 23
0
 def test_index_redirect(self):
     with hangman_app.test_client() as client:
         resp=client.get('/', follow_redirects=True)
         self.assertEqual(flask.request.path, '/login')
Ejemplo n.º 24
0
 def test_login_unknown_user_signup_redirect(self):
     with hangman_app.test_client() as client:
         data = {'username': '******', 'password': '******'}
         resp = client.post('/login', data=data, follow_redirects=True)
         self.assertEqual(flask.request.path, '/signup')
Ejemplo n.º 25
0
 def test_logout_login_redirect(self):
     with hangman_app.test_client() as client:
         data = {'username': '******', 'password': '******'}
         client.post('/login', data=data, follow_redirects=True)
         client.get('/logout', follow_redirects=True)
         self.assertEqual(flask.request.path, '/login')
Ejemplo n.º 26
0
 def test_signup_play_redirect(self):
     with hangman_app.test_client() as client:
         data = {'username': '******', 'password': '******'}
         resp = client.post('/signup', data=data, follow_redirects=True)
         path = flask.request.path
         self.assertEqual(path, '/play')
Ejemplo n.º 27
0
 def setUp(self):
     self.client = hangman_app.test_client()