Exemplo n.º 1
0
 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,))
Exemplo n.º 2
0
 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'])
Exemplo n.º 3
0
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']
Exemplo n.º 4
0
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']
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
def list_counters():
    """
    List the names of all the stored counters.
    """
    print "\n".join(query_column('SELECT counter FROM counters'))
Exemplo n.º 7
0
                    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: