bundled/flask/examples/flaskr/flaskr_tests.py @ b443b42afe6f issue-90
Convert unicode to ascii for mercurial API. Mercurial API can't work with python's Unicode objects. Details http://mercurial.selenic.com/wiki/EncodingStrategy#Unicode_strings
| author | Alexander Stepanenko <olexander314@gmail.com> | 
|---|---|
| date | Mon, 15 Dec 2014 02:06:13 +0300 | 
| parents | f33efe14bff1 | 
| children | (none) | 
# -*- coding: utf-8 -*- """ Flaskr Tests ~~~~~~~~~~~~ Tests the Flaskr application. :copyright: (c) 2010 by Armin Ronacher. :license: BSD, see LICENSE for more details. """ import os import flaskr import unittest import tempfile class FlaskrTestCase(unittest.TestCase): def setUp(self): """Before each test, set up a blank database""" self.db_fd, flaskr.app.config['DATABASE'] = tempfile.mkstemp() self.app = flaskr.app.test_client() flaskr.init_db() def tearDown(self): """Get rid of the database again after each test.""" os.close(self.db_fd) os.unlink(flaskr.app.config['DATABASE']) def login(self, username, password): return self.app.post('/login', data=dict( username=username, password=password ), follow_redirects=True) def logout(self): return self.app.get('/logout', follow_redirects=True) # testing functions def test_empty_db(self): """Start with a blank database.""" rv = self.app.get('/') assert 'No entries here so far' in rv.data def test_login_logout(self): """Make sure login and logout works""" rv = self.login(flaskr.app.config['USERNAME'], flaskr.app.config['PASSWORD']) assert 'You were logged in' in rv.data rv = self.logout() assert 'You were logged out' in rv.data rv = self.login(flaskr.app.config['USERNAME'] + 'x', flaskr.app.config['PASSWORD']) assert 'Invalid username' in rv.data rv = self.login(flaskr.app.config['USERNAME'], flaskr.app.config['PASSWORD'] + 'x') assert 'Invalid password' in rv.data def test_messages(self): """Test that messages work""" self.login(flaskr.app.config['USERNAME'], flaskr.app.config['PASSWORD']) rv = self.app.post('/add', data=dict( title='<Hello>', text='<strong>HTML</strong> allowed here' ), follow_redirects=True) assert 'No entries here so far' not in rv.data assert '<Hello>' in rv.data assert '<strong>HTML</strong> allowed here' in rv.data if __name__ == '__main__': unittest.main()