+++ /dev/null
-from test.lib.testing import assert_raises, assert_raises_message
-from sqlalchemy import *
-from sqlalchemy import exc, sql
-from test.lib 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(Integer),
- Column('b', Integer),
- Column(Integer),
- Column('d', Integer),
- Column(Integer, 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())
-
-
-class ColumnOptionsTest(TestBase):
-
- def test_default_generators(self):
- g1, g2 = Sequence('foo_id_seq'), ColumnDefault('f5')
- assert Column(String, default=g1).default is g1
- assert Column(String, onupdate=g1).onupdate is g1
- assert Column(String, default=g2).default is g2
- assert Column(String, onupdate=g2).onupdate is g2
-
- def test_type_required(self):
- assert_raises(exc.ArgumentError, Column)
- assert_raises(exc.ArgumentError, Column, "foo")
- assert_raises(exc.ArgumentError, Column, default="foo")
- assert_raises(exc.ArgumentError, Column, Sequence("a"))
- assert_raises(exc.ArgumentError, Column, "foo", default="foo")
- assert_raises(exc.ArgumentError, Column, "foo", Sequence("a"))
- Column(ForeignKey('bar.id'))
- Column("foo", ForeignKey('bar.id'))
- Column(ForeignKey('bar.id'), default="foo")
- Column(ForeignKey('bar.id'), Sequence("a"))
- Column("foo", ForeignKey('bar.id'), default="foo")
- Column("foo", ForeignKey('bar.id'), Sequence("a"))
-
- def test_column_info(self):
-
- c1 = Column('foo', String, info={'x':'y'})
- c2 = Column('bar', String, info={})
- c3 = Column('bat', String)
- assert c1.info == {'x':'y'}
- assert c2.info == {}
- assert c3.info == {}
-
- for c in (c1, c2, c3):
- c.info['bar'] = 'zip'
- assert c.info['bar'] == 'zip'
-
)
+class ColumnDefinitionTest(TestBase):
+ """Test Column() construction."""
+
+ # flesh this out with explicit coverage...
+
+ def columns(self):
+ return [ Column(Integer),
+ Column('b', Integer),
+ Column(Integer),
+ Column('d', Integer),
+ Column(Integer, 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())
+
+
+class ColumnOptionsTest(TestBase):
+
+ def test_default_generators(self):
+ g1, g2 = Sequence('foo_id_seq'), ColumnDefault('f5')
+ assert Column(String, default=g1).default is g1
+ assert Column(String, onupdate=g1).onupdate is g1
+ assert Column(String, default=g2).default is g2
+ assert Column(String, onupdate=g2).onupdate is g2
+
+ def test_type_required(self):
+ assert_raises(exc.ArgumentError, Column)
+ assert_raises(exc.ArgumentError, Column, "foo")
+ assert_raises(exc.ArgumentError, Column, default="foo")
+ assert_raises(exc.ArgumentError, Column, Sequence("a"))
+ assert_raises(exc.ArgumentError, Column, "foo", default="foo")
+ assert_raises(exc.ArgumentError, Column, "foo", Sequence("a"))
+ Column(ForeignKey('bar.id'))
+ Column("foo", ForeignKey('bar.id'))
+ Column(ForeignKey('bar.id'), default="foo")
+ Column(ForeignKey('bar.id'), Sequence("a"))
+ Column("foo", ForeignKey('bar.id'), default="foo")
+ Column("foo", ForeignKey('bar.id'), Sequence("a"))
+
+ def test_column_info(self):
+
+ c1 = Column('foo', String, info={'x':'y'})
+ c2 = Column('bar', String, info={})
+ c3 = Column('bat', String)
+ assert c1.info == {'x':'y'}
+ assert c2.info == {}
+ assert c3.info == {}
+
+ for c in (c1, c2, c3):
+ c.info['bar'] = 'zip'
+ assert c.info['bar'] == 'zip'
+
\ No newline at end of file