Files
sqlalchemy/test/sql/columns.py
T
Mike Bayer 4a6afd469f r4695 merged to trunk; trunk now becomes 0.5.
0.4 development continues at /sqlalchemy/branches/rel_0_4
2008-05-09 16:34:10 +00:00

61 lines
1.6 KiB
Python

import testenv; testenv.configure_for_tests()
from sqlalchemy import *
from sqlalchemy import exc, 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(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):
self.assertRaises(exc.ArgumentError, Column, 'foo', name='bar')
self.assertRaises(exc.ArgumentError, Column, 'foo', Integer,
type_=Integer())
if __name__ == "__main__":
testenv.main()