Make testing much faster by using a save point, rather than recreating the database every test

This commit is contained in:
Joseph Schorr 2014-01-30 20:57:40 -05:00
parent 31ff854031
commit 0833c88065
6 changed files with 129 additions and 24 deletions

View file

@ -2,7 +2,7 @@ import unittest
from app import app
from util.names import parse_namespace_repository
from initdb import wipe_database, initialize_database, populate_database
from initdb import setup_database_for_testing, finished_database_for_testing
from specs import build_index_specs
from endpoints.registry import registry
from endpoints.index import index
@ -20,10 +20,11 @@ ADMIN_ACCESS_USER = 'devtable'
class EndpointTestCase(unittest.TestCase):
def setUp(self):
wipe_database()
initialize_database()
populate_database()
def setUp(self):
setup_database_for_testing(self)
def tearDown(self):
finished_database_for_testing(self)
class _SpecTestBuilder(type):
@ -33,8 +34,10 @@ class _SpecTestBuilder(type):
with app.test_client() as c:
if session_var_list:
# Temporarily remove the teardown functions
teardown_funcs = app.teardown_request_funcs[None]
app.teardown_request_funcs[None] = []
teardown_funcs = []
if None in app.teardown_request_funcs:
teardown_funcs = app.teardown_request_funcs[None]
app.teardown_request_funcs[None] = []
with c.session_transaction() as sess:
for sess_key, sess_val in session_var_list: