diff --git a/ctdb/lib/tdb/pytdb.c b/ctdb/lib/tdb/pytdb.c index 58db1a8a6db..d904e47e830 100644 --- a/ctdb/lib/tdb/pytdb.c +++ b/ctdb/lib/tdb/pytdb.c @@ -409,7 +409,9 @@ static PyGetSetDef tdb_object_getsetters[] = { static PyObject *tdb_object_repr(PyTdbObject *self) { - return PyString_FromFormat("Tdb('%s')", tdb_name(self->ctx)); + return PyString_FromFormat("Tdb('%s')", + (tdb_get_flags(self->ctx) & TDB_INTERNAL) ? "" + : tdb_name(self->ctx)); } static void tdb_object_dealloc(PyTdbObject *self) diff --git a/ctdb/lib/tdb/python/tests/simple.py b/ctdb/lib/tdb/python/tests/simple.py index 0b8b8d92243..2b72fff75d4 100644 --- a/ctdb/lib/tdb/python/tests/simple.py +++ b/ctdb/lib/tdb/python/tests/simple.py @@ -25,6 +25,14 @@ class CloseTdbTests(TestCase): self.tdb.close() +class InternalTdbTests(TestCase): + def test_repr(self): + self.tdb = tdb.Tdb("whatever", tdb_flags=tdb.INTERNAL) + + # repr used to crash on internal db + self.assertEquals(repr(self.tdb), "Tdb('')") + + class SimpleTdbTests(TestCase): def setUp(self): super(SimpleTdbTests, self).setUp()