return []
def __repr__(self):
- return "%s()" % self.__class__.__name__
+ return util.generic_repr(self)
@util.memoized_property
def info(self):
[repr(x) for x in self.foreign_keys if x is not None] +
[repr(x) for x in self.constraints] +
[(self.table is not None and "table=<%s>" %
- self.table.description or "")] +
+ self.table.description or "table=None")] +
["%s=%s" % (k, repr(getattr(self, k))) for k in kwarg])
def _set_parent(self, table):
else:
return None
- def __repr__(self):
- return "DefaultGenerator()"
-
class ColumnDefault(DefaultGenerator):
"""A plain default value on a column.
"""
return expression.func.next_value(self, bind=self.bind)
- def __repr__(self):
- return "Sequence(%s)" % ', '.join(
- [repr(self.name)] +
- ["%s=%s" % (k, repr(getattr(self, k)))
- for k in ['start', 'increment', 'optional']])
-
def _set_parent(self, column):
super(Sequence, self)._set_parent(column)
column._on_table_attach(self._set_table)
self.column.server_default = self
def __repr__(self):
- return 'FetchedValue(for_update=%r)' % self.for_update
-
+ return util.generic_repr(self)
class DefaultClause(FetchedValue):
"""A DDL-specified DEFAULT column value.
bind._run_visitor(ddl.SchemaDropper, self)
def __repr__(self):
- return 'Index("%s", %s%s)' % (
- self.name,
- ', '.join(repr(c) for c in self.columns),
- (self.unique and ', unique=True') or '')
+ return 'Index(%s)' % (
+ ", ".join(
+ [repr(self.name)] +
+ [repr(c) for c in self.columns] +
+ (self.unique and ["unique=True"] or [])
+ ))
class MetaData(SchemaItem):
"""A collection of :class:`.Table` objects and their associated schema constructs.
self.reflect()
def __repr__(self):
- return 'MetaData(%r)' % self.bind
+ return 'MetaData(bind=%r)' % self.bind
def __contains__(self, table_or_key):
if not isinstance(table_or_key, basestring):
'fake_table',
MetaData(testing.db), autoload=True)
+ def test_assorted_repr(self):
+ t1 = Table("foo", MetaData(), Column("x", Integer))
+ i1 = Index("bar", t1.c.x)
+ ck = schema.CheckConstraint("x > y", name="someconstraint")
+
+ for const, exp in (
+ (Sequence("my_seq"),
+ "Sequence('my_seq')"),
+ (Sequence("my_seq", start=5),
+ "Sequence('my_seq', start=5)"),
+ (Column("foo", Integer),
+ "Column('foo', Integer(), table=None)"),
+ (Table("bar", MetaData(), Column("x", String)),
+ "Table('bar', MetaData(bind=None), "
+ "Column('x', String(), table=<bar>), schema=None)"),
+ (schema.DefaultGenerator(for_update=True),
+ "DefaultGenerator(for_update=True)"),
+ (schema.Index("bar"), "Index('bar')"),
+ (i1, "Index('bar', Column('x', Integer(), table=<foo>))"),
+ (schema.FetchedValue(), "FetchedValue()"),
+ (ck,
+ "CheckConstraint("
+ "%s"
+ ", name='someconstraint')" % repr(ck.sqltext)),
+ ):
+ eq_(
+ repr(const),
+ exp
+ )
class TableTest(fixtures.TestBase, AssertsCompiledSQL):
def test_prefixes(self):
canary.append("%s->%s" % (obj.__class__.__name__, parent.__class__.__name__))
def after_attach(obj, parent):
- canary.append("%s->%s" % (obj, parent))
+ canary.append("%s->%s" % (obj.__class__.__name__, parent))
event.listen(schema.SchemaItem, "before_parent_attach", before_attach)
event.listen(schema.SchemaItem, "after_parent_attach", after_attach)
eq_(
canary,
- [
- 'Sequence->Column',
- "Sequence('foo_id', start=None, increment=None, optional=False)->id",
- 'ForeignKey->Column',
- "ForeignKey('t2.id')->bar",
- 'Table->MetaData',
- 'PrimaryKeyConstraint->Table', 'PrimaryKeyConstraint()->t1',
- 'Column->Table', 't1.id->t1',
- 'Column->Table', 't1.bar->t1',
- 'ForeignKeyConstraint->Table',
- 'ForeignKeyConstraint()->t1',
- 't1->MetaData(None)',
- 'Table->MetaData',
- 'PrimaryKeyConstraint->Table', 'PrimaryKeyConstraint()->t2',
- 'Column->Table',
- 't2.id->t2', 't2->MetaData(None)']
+ ['Sequence->Column', 'Sequence->id', 'ForeignKey->Column',
+ 'ForeignKey->bar', 'Table->MetaData',
+ 'PrimaryKeyConstraint->Table', 'PrimaryKeyConstraint->t1',
+ 'Column->Table', 'Column->t1', 'Column->Table',
+ 'Column->t1', 'ForeignKeyConstraint->Table',
+ 'ForeignKeyConstraint->t1', 'Table->MetaData(bind=None)',
+ 'Table->MetaData', 'PrimaryKeyConstraint->Table',
+ 'PrimaryKeyConstraint->t2', 'Column->Table', 'Column->t2',
+ 'Table->MetaData(bind=None)']
)
def test_events_per_constraint(self):