示例#1
0
 def test_close(self):
     """
     You can close the cursor
     """
     mock = MagicMock()
     mock.close = MagicMock()
     cursor = BlockingCursor(mock)
     d = cursor.close()
     d.addCallback(lambda _: mock.close.assert_called_once_with())
     return d
示例#2
0
 def test_lastrowid(self):
     """
     You can get the lastrowid (which may be meaningless for some db cursors)
     """
     mock = MagicMock()
     mock.lastrowid = 12
     cursor = BlockingCursor(mock)
     d = cursor.lastRowId()
     d.addCallback(lambda rowid: self.assertEqual(rowid, 12))
     return d
示例#3
0
 def test_fetchall(self):
     """
     You can fetch all
     """
     db = sqlite3.connect(':memory:')
     cursor = BlockingCursor(db.cursor())
     d = cursor.execute('create table foo (name text)')
     d.addCallback(lambda _: cursor.execute('insert into foo (name) values(?)', ('name1',)))
     d.addCallback(lambda _: cursor.execute('select name from foo'))
     d.addCallback(lambda _: cursor.fetchall())
     def check(result):
         self.assertEqual(result, [('name1',)])
     d.addCallback(check)
     return d
示例#4
0
 def test_execute(self):
     """
     You can execute queries in pretended asynchronousness
     """
     db = sqlite3.connect(':memory:')
     cursor = BlockingCursor(db.cursor())
     d = cursor.execute('create table foo (name text)')
     d.addCallback(lambda _: cursor.execute('insert into foo (name) values(?)', ('name1',)))
     d.addCallback(lambda _: cursor.execute('select name from foo'))
     d.addCallback(lambda _: cursor.fetchone())
     def check(result):
         self.assertEqual(result, ('name1',))
     d.addCallback(check)
     return d