From: Robert Leftwich Date: Mon, 16 Jan 2006 06:22:52 +0000 (+0000) Subject: Fixed problem in Column.copy(), _make_proxy() with nullable and hidden not being... X-Git-Tag: rel_0_1_0~130 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c4085b0fbf78c533c50fea3fd778c770adb40a70;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Fixed problem in Column.copy(), _make_proxy() with nullable and hidden not being reflected into new Column. Added test for same. Removed reference to non-existant columns test from list of tests in alltests. --- diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index 86613ade98..fbcc42ad51 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -288,7 +288,7 @@ class Column(SchemaItem): fk = None else: fk = self.foreign_key.copy() - return Column(self.name, self.type, fk, self.default, key = self.key, primary_key = self.primary_key) + return Column(self.name, self.type, fk, self.default, key = self.key, primary_key = self.primary_key, nullable=self.nullable, hidden=self.hidden) def _make_proxy(self, selectable, name = None): """creates a copy of this Column, initialized the way this Column is""" @@ -296,7 +296,7 @@ class Column(SchemaItem): fk = None else: fk = self.foreign_key.copy() - c = Column(name or self.name, self.type, fk, self.default, key = name or self.key, primary_key = self.primary_key, hidden=self.hidden) + c = Column(name or self.name, self.type, fk, self.default, key = name or self.key, primary_key = self.primary_key, nullable=self.nullable, hidden=self.hidden) c.table = selectable c._orig = self.original if not c.hidden: diff --git a/test/alltests.py b/test/alltests.py index db02f8a4c6..1365b51530 100644 --- a/test/alltests.py +++ b/test/alltests.py @@ -4,7 +4,7 @@ import unittest testbase.echo = False def suite(): - modules_to_test = ('attributes', 'historyarray', 'pool', 'engines', 'query', 'columns', 'sequence', 'select', 'types', 'mapper', 'objectstore', 'manytomany', 'dependency') + modules_to_test = ('attributes', 'historyarray', 'pool', 'engines', 'query', 'sequence', 'select', 'types', 'mapper', 'objectstore', 'manytomany', 'dependency') # modules_to_test = ('engines', 'mapper') alltests = unittest.TestSuite() for module in map(__import__, modules_to_test): diff --git a/test/engines.py b/test/engines.py index b649b5a70c..10aa380bac 100644 --- a/test/engines.py +++ b/test/engines.py @@ -97,6 +97,27 @@ class EngineTest(PersistTest): table.select().execute().fetchall() table.drop() + def testtoengine(self): + db = ansisql.engine() + + table = Table('mytable', db, + Column('myid', Integer, key = 'id'), + Column('name', String, key = 'name', nullable=False), + Column('description', String, key = 'description'), + ) + + print repr(table) + + pgdb = postgres.engine({}) + + pgtable = table.toengine(pgdb) + + print repr(pgtable) + assert pgtable.c.id.nullable + assert not pgtable.c.name.nullable + assert pgtable.c.description.nullable + + if __name__ == "__main__": testbase.main()