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)
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)
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)
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)
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)
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_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)
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)
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_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 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)
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_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_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))
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_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')
def test_index_redirect(self): with hangman_app.test_client() as client: resp = client.get('/', follow_redirects=True) self.assertEqual(flask.request.path, '/login')
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')
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')
def test_index_redirect(self): with hangman_app.test_client() as client: resp=client.get('/', follow_redirects=True) self.assertEqual(flask.request.path, '/login')
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')
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')
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')
def setUp(self): self.client = hangman_app.test_client()