def test_runInteraction_error(self): """ If there's an error in the interaction, do a rollback """ db = sqlite3.connect(':memory:') mock = create_autospec(db) runner = BlockingRunner(mock) def interaction(cursor): raise Exception('foo') def check(result): mock.rollback.assert_called_once_with() d = runner.runInteraction(interaction) return d.addErrback(check)
def test_runInteraction(self): """ Should call the function with an instance of cursorFactory """ db = sqlite3.connect(':memory:') mock = create_autospec(db) runner = BlockingRunner(mock) def interaction(cursor, *args, **kwargs): self.assertTrue(isinstance(cursor, BlockingCursor)) self.assertEqual(args, (1,2,3)) self.assertEqual(kwargs, {'foo': 'bar'}) return 'result' def check(result): self.assertEqual(result, 'result') mock.commit.assert_called_once_with() d = runner.runInteraction(interaction, 1, 2, 3, foo='bar') return d.addCallback(check)