def test_logging(self): with dbkit.connect(sqlite3, ':memory:') as ctx: captured = six.StringIO() ctx.logger = dbkit.make_file_object_logger(captured) dbkit.query_column(LIST_TABLES) value = utils.skip_first_line(captured.getvalue()) captured.close() self.assertEqual(value, "%s\nArguments:\n()\n" % (LIST_TABLES,))
def test_create_table(self): with dbkit.connect(sqlite3, ':memory:'): result = dbkit.query_column(LIST_TABLES) self.assertTrue(hasattr(result, '__iter__')) self.assertEqual(len(list(result)), 0) dbkit.execute(SCHEMA) result = dbkit.query_column(LIST_TABLES) self.assertTrue(hasattr(result, '__iter__')) self.assertEqual(list(result), [u'counters'])
def test_create_table(): with dbkit.connect(sqlite3, ':memory:'): result = dbkit.query_column(LIST_TABLES) assert isinstance(result, types.GeneratorType) assert len(list(result)) == 0 dbkit.execute(SCHEMA) result = dbkit.query_column(LIST_TABLES) assert isinstance(result, types.GeneratorType) assert list(result) == [u'counters']
def test_create_table(): with dbkit.connect(sqlite3, ':memory:'): result = dbkit.query_column(LIST_TABLES) assert hasattr(result, '__iter__') assert len(list(result)) == 0 dbkit.execute(SCHEMA) result = dbkit.query_column(LIST_TABLES) assert hasattr(result, '__iter__') assert list(result) == [u'counters']
def test_unpooled_disconnect(self): # Test rollback of connection. try: self.assertEqual(self.ctx.mdr.depth, 0) with self.ctx: try: with dbkit.transaction(): self.assertEqual(self.ctx.mdr.depth, 1) self.assertTrue(self.ctx.mdr.conn is not None) self.assertEqual( dbkit.query_value(GET_COUNTER, ('foo',)), 42) raise self.ctx.OperationalError("Simulating disconnect") except self.ctx.OperationalError: self.assertEqual(self.ctx.mdr.depth, 0) self.assertTrue(self.ctx.mdr.conn is None) raise self.fail("Should've raised OperationalError") except self.ctx.OperationalError as exc: self.assertEqual(self.ctx.mdr.depth, 0) self.assertTrue(self.ctx.mdr.conn is None) self.assertEqual(str(exc), "Simulating disconnect") # Test reconnect. As we're running this all against an in-memory DB, # everything in it will have been throttled, thus the only query we can # do is query the list of tables, which will be empty. with self.ctx: self.assertEqual(len(list(dbkit.query_column(LIST_TABLES))), 0) self.assertTrue(self.ctx.mdr.conn is not None)
def list_counters(): """ List the names of all the stored counters. """ print "\n".join(query_column('SELECT counter FROM counters'))
assert ctx._mdr.conn is not None assert dbkit.query_value(GET_COUNTER, ('foo',)) == 42 raise ctx.OperationalError("Simulating disconnect") except: assert ctx._mdr.depth == 0 assert ctx._mdr.conn is None raise assert False, "Should've raised OperationalError" except ctx.OperationalError, exc: assert ctx._mdr.depth == 0 assert ctx._mdr.conn is None assert exc.message == "Simulating disconnect" # Test reconnect. As we're running this all against an in-memory DB, # everything in it will have been throttled, thus the only query we can # do is query the list of tables, which will be empty. with ctx: assert len(list(dbkit.query_column(LIST_TABLES))) == 0 assert ctx._mdr.conn is not None ctx.close() def test_unindent_statement(): assert dbkit.unindent_statement("foo\nbar") == "foo\nbar" assert dbkit.unindent_statement(" foo\n bar") == "foo\nbar" assert dbkit.unindent_statement(" foo\n bar") == "foo\nbar" assert dbkit.unindent_statement(" foo\n bar") == "foo\n bar" assert dbkit.unindent_statement(" foo\n bar") == "foo\nar" # vim:set et ai: