summaryrefslogtreecommitdiff
path: root/test/engine/metadata.py
blob: 03293b1782d5467b3e9ff9670aa5e5d7ab8696c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import testbase
from sqlalchemy import *
from testlib import *

class MetaDataTest(PersistTest):
    def test_metadata_connect(self):
        metadata = MetaData()
        t1 = Table('table1', metadata, Column('col1', Integer, primary_key=True),
            Column('col2', String(20)))
        metadata.bind = testbase.db
        metadata.create_all()
        try:
            assert t1.count().scalar() == 0
        finally:
            metadata.drop_all()


    def test_dupe_tables(self):
        metadata = MetaData()
        t1 = Table('table1', metadata, Column('col1', Integer, primary_key=True),
            Column('col2', String(20)))

        metadata.bind = testbase.db
        metadata.create_all()
        try:
            try:
                t1 = Table('table1', metadata, autoload=True)
                t2 = Table('table1', metadata, Column('col1', Integer, primary_key=True),
                    Column('col2', String(20)))
                assert False
            except exceptions.ArgumentError, e:
                assert str(e) == "Table 'table1' is already defined for this MetaData instance."
        finally:
            metadata.drop_all()
            
if __name__ == '__main__':
    testbase.main()