summaryrefslogtreecommitdiff
path: root/test/sql/test_columns.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/sql/test_columns.py')
-rw-r--r--test/sql/test_columns.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/test/sql/test_columns.py b/test/sql/test_columns.py
new file mode 100644
index 000000000..e9dabe142
--- /dev/null
+++ b/test/sql/test_columns.py
@@ -0,0 +1,58 @@
+from sqlalchemy.test.testing import assert_raises, assert_raises_message
+from sqlalchemy import *
+from sqlalchemy import exc, sql
+from sqlalchemy.test 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()
+
+ assert_raises(exc.ArgumentError, Table, 't', MetaData(), *c)
+
+ def test_incomplete_key(self):
+ c = Column(Integer)
+ assert c.name is None
+ assert c.key is None
+
+ c.name = 'named'
+ t = Table('t', MetaData(), c)
+
+ assert c.name == 'named'
+ assert c.name == c.key
+
+
+ def test_bogus(self):
+ assert_raises(exc.ArgumentError, Column, 'foo', name='bar')
+ assert_raises(exc.ArgumentError, Column, 'foo', Integer,
+ type_=Integer())
+