Skip to content

Instantly share code, notes, and snippets.

@adiroiban
Last active December 15, 2015 05:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adiroiban/5209471 to your computer and use it in GitHub Desktop.
Save adiroiban/5209471 to your computer and use it in GitHub Desktop.
Example to write test using multiple deferred in the same test.
class TestDatabaseHandlerSQLite(ServerTestCase):
"""
Integration tests for the SQLite database log handler.
"""
def setUp(self):
super(TestDatabaseHandlerSQLite, self).setUp()
self.pool = DBConnectionPool('sqlite://:memory:')
self.handler = DatabaseHandler(self.pool, capacity=1)
self.handler._scheduler = Clock()
# FIXME:XXX:
# Replace Twistar singleton approach with per instance
# attributes.
Registry.DBPOOL = self.pool._pool
Registry.IMPL = self.pool.getTranslator()
self.handler.configure()
# # patch handler and test _insertEntry
prev = self.handler._insertEntry
def mockInsertEntry(entry):
deferred = prev(entry)
self.getDeferredResult(deferred)
return deferred
self.handler._insertEntry = mockInsertEntry
# Create log database.
create_deferred = self.pool.runQuery(
'CREATE TABLE ' + LogEntry.TABLENAME +
' (id INTEGER PRIMARY KEY ASC, message VARCHAR(120))'
)
self.getDeferredResult(create_deferred, prevent_stop=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment