From f979c19841e6803099827d58d4de65964391be49 Mon Sep 17 00:00:00 2001 From: Jason Kirtland Date: Tue, 18 Mar 2008 00:15:34 +0000 Subject: - 'name' is no longer a require constructor argument for Column(). It (and .key) may now be deferred until the Column is added to a Table. --- test/sql/alltests.py | 1 + test/sql/columns.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 test/sql/columns.py (limited to 'test/sql') diff --git a/test/sql/alltests.py b/test/sql/alltests.py index f49cf14d4..173b04632 100644 --- a/test/sql/alltests.py +++ b/test/sql/alltests.py @@ -5,6 +5,7 @@ import unittest def suite(): modules_to_test = ( 'sql.testtypes', + 'sql.columns', 'sql.constraints', 'sql.generative', diff --git a/test/sql/columns.py b/test/sql/columns.py new file mode 100644 index 000000000..0a904bee1 --- /dev/null +++ b/test/sql/columns.py @@ -0,0 +1,48 @@ +import testenv; testenv.configure_for_tests() +from sqlalchemy import * +from sqlalchemy import exceptions, sql +from testlib import * +from sqlalchemy import Table, Column # don't use testlib's wrappers + + +class ColumnDefinitionTest(TestBase): + """Test Column() construction.""" + + # flesh this out with explicit coverage... + + def columns(self): + return [ Column(), + Column('b'), + Column(Integer), + Column('d', Integer), + Column(name='e'), + Column(type_=Integer), + Column(Integer()), + Column('h', Integer()), + Column(type_=Integer()) ] + + def test_basic(self): + c = self.columns() + + for i, v in ((0, 'a'), (2, 'c'), (5, 'f'), (6, 'g'), (8, 'i')): + c[i].name = v + c[i].key = v + del i, v + + tbl = Table('table', MetaData(), *c) + + for i, col in enumerate(tbl.c): + assert col.name == c[i].name + + def test_incomplete(self): + c = self.columns() + + self.assertRaises(exceptions.ArgumentError, Table, 't', MetaData(), *c) + + def test_bogus(self): + self.assertRaises(exceptions.ArgumentError, Column, 'foo', name='bar') + self.assertRaises(exceptions.ArgumentError, Column, 'foo', Integer, + type_=Integer()) + +if __name__ == "__main__": + testenv.main() -- cgit v1.2.1