diff options
Diffstat (limited to 'tests/conftest.py')
| -rw-r--r-- | tests/conftest.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..45079a9 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,61 @@ +"""contains setup functions called fixtures that each test will use""" + +import os +import tempfile + +import pytest +from flaskr import create_app +from flaskr.db import get_db, init_db + +with open(os.path.join(os.path.dirname(__file__), 'data.sql'), 'rb') as f: + _data_sql = f.read().decode('utf8') + + +def app(): + db_fd, db_path = tempfile.mkstemp() + + app = create_app({ + 'TESTING': True, + 'DATABASE': db_path, + }) + + with app.app_context(): + init_db() + get_db().executescript(_data_sql) + + yield app + + os.close(db_fd) + os.unlink(db_path) + + +def client(app): + """can make requests to the app without running the server""" + return app.test_client() + + +def runner(app): + """can all the Click commands registered with the application""" + return app.test_cli_runner() + + +class AuthActions(object): + def __init__(self, client): + self._client = client + + def login(self, username='test', password='test'): + return self._client.post( + '/auth/login', + data={'username': username, 'password': password} + ) + + def logout(self): + return self._client.get('/auth/logout') + + +def auth(client): + return AuthActions(client)
\ No newline at end of file |
