Example #1
0
    def test_conditional_constraint(self):
        metadata, users, engine = self.metadata, self.users, self.engine
        nonpg_mock = engines.mock_engine(dialect_name='sqlite')
        pg_mock = engines.mock_engine(dialect_name='postgresql')
        
        constraint = CheckConstraint('a < b',name="my_test_constraint", table=users)

        # by placing the constraint in an Add/Drop construct,
        # the 'inline_ddl' flag is set to False
        AddConstraint(constraint, on='postgresql').execute_at("after-create", users)
        DropConstraint(constraint, on='postgresql').execute_at("before-drop", users)
        
        metadata.create_all(bind=nonpg_mock)
        strings = " ".join(str(x) for x in nonpg_mock.mock)
        assert "my_test_constraint" not in strings  
        metadata.drop_all(bind=nonpg_mock)
        strings = " ".join(str(x) for x in nonpg_mock.mock)
        assert "my_test_constraint" not in strings

        metadata.create_all(bind=pg_mock)
        strings = " ".join(str(x) for x in pg_mock.mock)
        assert "my_test_constraint" in strings
        metadata.drop_all(bind=pg_mock)
        strings = " ".join(str(x) for x in pg_mock.mock)
        assert "my_test_constraint" in strings
    def test_conditional_constraint(self):
        metadata, users, engine = self.metadata, self.users, self.engine
        nonpg_mock = engines.mock_engine(dialect_name='sqlite')
        pg_mock = engines.mock_engine(dialect_name='postgresql')
        constraint = CheckConstraint('a < b',
                                     name='my_test_constraint',
                                     table=users)

        # by placing the constraint in an Add/Drop construct, the
        # 'inline_ddl' flag is set to False

        AddConstraint(constraint,
                      on='postgresql').execute_at('after-create', users)
        DropConstraint(constraint,
                       on='postgresql').execute_at('before-drop', users)
        metadata.create_all(bind=nonpg_mock)
        strings = ' '.join(str(x) for x in nonpg_mock.mock)
        assert 'my_test_constraint' not in strings
        metadata.drop_all(bind=nonpg_mock)
        strings = ' '.join(str(x) for x in nonpg_mock.mock)
        assert 'my_test_constraint' not in strings
        metadata.create_all(bind=pg_mock)
        strings = ' '.join(str(x) for x in pg_mock.mock)
        assert 'my_test_constraint' in strings
        metadata.drop_all(bind=pg_mock)
        strings = ' '.join(str(x) for x in pg_mock.mock)
        assert 'my_test_constraint' in strings
Example #3
0
    def test_use_alter(self):
        m = MetaData()
        t = Table(
            't',
            m,
            Column('a', Integer),
        )

        t2 = Table(
            't2',
            m,
            Column('a', Integer, ForeignKey('t.a',
                                            use_alter=True,
                                            name='fk_ta')),
            Column('b', Integer,
                   ForeignKey('t.a',
                              name='fk_tb')),  # to ensure create ordering ...
        )

        e = engines.mock_engine(dialect_name='postgresql')
        m.create_all(e)
        m.drop_all(e)

        e.assert_sql([
            'CREATE TABLE t (a INTEGER)',
            'CREATE TABLE t2 (a INTEGER, b INTEGER, CONSTRAINT fk_tb FOREIGN KEY(b) REFERENCES t (a))',
            'ALTER TABLE t2 ADD CONSTRAINT fk_ta FOREIGN KEY(a) REFERENCES t (a)',
            'ALTER TABLE t2 DROP CONSTRAINT fk_ta', 'DROP TABLE t2',
            'DROP TABLE t'
        ])
Example #4
0
 def setup(self):
     self.engine = engines.mock_engine()
     self.metadata = MetaData(self.engine)
     self.users = Table('users', self.metadata,
                        Column('user_id', Integer, primary_key=True),
                        Column('user_name', String(40)),
                        )
Example #5
0
 def setup(self):
     self.engine = engines.mock_engine()
     self.metadata = MetaData(self.engine)
     self.users = Table(
         'users',
         self.metadata,
         Column('user_id', Integer, primary_key=True),
         Column('user_name', String(40)),
     )
Example #6
0
    def test_use_alter(self):
        m = MetaData()
        t = Table('t', m,
                  Column('a', Integer),
        )
        
        t2 = Table('t2', m,
                Column('a', Integer, ForeignKey('t.a', use_alter=True, name='fk_ta')),
                Column('b', Integer, ForeignKey('t.a', name='fk_tb')), # to ensure create ordering ...
        )

        e = engines.mock_engine(dialect_name='postgresql')
        m.create_all(e)
        m.drop_all(e)

        e.assert_sql([
            'CREATE TABLE t (a INTEGER)', 
            'CREATE TABLE t2 (a INTEGER, b INTEGER, CONSTRAINT fk_tb FOREIGN KEY(b) REFERENCES t (a))', 
            'ALTER TABLE t2 ADD CONSTRAINT fk_ta FOREIGN KEY(a) REFERENCES t (a)', 
            'ALTER TABLE t2 DROP CONSTRAINT fk_ta', 
            'DROP TABLE t2', 
            'DROP TABLE t'
        ])
Example #7
0
 def setup(self):
     self.bind = engines.mock_engine()
     self.metadata = MetaData()
     self.table = Table('t', self.metadata, Column('id', Integer))
Example #8
0
 def setup(self):
     self.engine = engines.mock_engine()
     self.metadata = MetaData(self.engine)
Example #9
0
 def setup(self):
     self.bind = engines.mock_engine()
     self.metadata = MetaData()
     self.table = Table('t', self.metadata, Column('id', Integer))
Example #10
0
 def setup(self):
     self.engine = engines.mock_engine()
     self.metadata = MetaData(self.engine)