def test_render_table_upgrade(self): m = MetaData() t = Table( 'test', m, Column('id', Integer, primary_key=True), Column('name', Unicode(255)), Column("address_id", Integer, ForeignKey("address.id")), Column("timestamp", DATETIME, server_default="NOW()"), Column("amount", Numeric(5, 2)), UniqueConstraint("name", name="uq_name"), UniqueConstraint("timestamp"), ) eq_ignore_whitespace( autogenerate._add_table(t, self.autogen_context), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.Column('name', sa.Unicode(length=255), nullable=True)," "sa.Column('address_id', sa.Integer(), nullable=True)," "sa.Column('timestamp', sa.DATETIME(), " "server_default='NOW()', " "nullable=True)," "sa.Column('amount', sa.Numeric(precision=5, scale=2), nullable=True)," "sa.ForeignKeyConstraint(['address_id'], ['address.id'], )," "sa.PrimaryKeyConstraint('id')," "sa.UniqueConstraint('name', name='uq_name')," "sa.UniqueConstraint('timestamp')" ")")
def test_render_table_upgrade(self): m = MetaData() t = Table('test', m, Column('id', Integer, primary_key=True), Column('name', Unicode(255)), Column("address_id", Integer, ForeignKey("address.id")), Column("timestamp", DATETIME, server_default="NOW()"), Column("amount", Numeric(5, 2)), UniqueConstraint("name", name="uq_name"), UniqueConstraint("timestamp"), ) eq_ignore_whitespace( autogenerate._add_table(t, self.autogen_context), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.Column('name', sa.Unicode(length=255), nullable=True)," "sa.Column('address_id', sa.Integer(), nullable=True)," "sa.Column('timestamp', sa.DATETIME(), " "server_default='NOW()', " "nullable=True)," "sa.Column('amount', sa.Numeric(precision=5, scale=2), nullable=True)," "sa.ForeignKeyConstraint(['address_id'], ['address.id'], )," "sa.PrimaryKeyConstraint('id')," "sa.UniqueConstraint('name', name='uq_name')," "sa.UniqueConstraint('timestamp')" ")" )
def test_render_check_constraint_literal(self): eq_ignore_whitespace( autogenerate._render_check_constraint( CheckConstraint("im a constraint"), self.autogen_context ), "sa.CheckConstraint('im a constraint')" )
def test_render_check_constraint_sqlexpr(self): c = column('c') five = literal_column('5') ten = literal_column('10') eq_ignore_whitespace( autogenerate._render_check_constraint( CheckConstraint(and_(c > five, c < ten)), self.autogen_context), "sa.CheckConstraint('c > 5 AND c < 10')")
def test_render_modify_nullable(self): eq_ignore_whitespace( autogenerate._modify_col("sometable", "somecolumn", self.autogen_context, existing_type=Integer(), nullable=True), "op.alter_column('sometable', 'somecolumn', " "existing_type=sa.Integer(), nullable=True)")
def test_render_modify_type(self): eq_ignore_whitespace( autogenerate._modify_col("sometable", "somecolumn", self.autogen_context, type_=CHAR(10), existing_type=CHAR(20)), "op.alter_column('sometable', 'somecolumn', " "existing_type=sa.CHAR(length=20), type_=sa.CHAR(length=10))")
def test_render_modify_type(self): eq_ignore_whitespace( autogenerate._modify_col( "sometable", "somecolumn", self.autogen_context, type_=CHAR(10), existing_type=CHAR(20)), "op.alter_column('sometable', 'somecolumn', " "existing_type=sa.CHAR(length=20), type_=sa.CHAR(length=10))" )
def test_render_enum(self): eq_ignore_whitespace( autogenerate._repr_type("sa.", Enum("one", "two", "three", name="myenum"), self.autogen_context), "sa.Enum('one', 'two', 'three', name='myenum')") eq_ignore_whitespace( autogenerate._repr_type("sa.", Enum("one", "two", "three"), self.autogen_context), "sa.Enum('one', 'two', 'three')")
def test_render_modify_nullable(self): eq_ignore_whitespace( autogenerate._modify_col( "sometable", "somecolumn", self.autogen_context, existing_type=Integer(), nullable=True), "op.alter_column('sometable', 'somecolumn', " "existing_type=sa.Integer(), nullable=True)" )
def test_render_check_constraint_sqlexpr(self): c = column('c') five = literal_column('5') ten = literal_column('10') eq_ignore_whitespace( autogenerate._render_check_constraint( CheckConstraint(and_(c > five, c < ten)), self.autogen_context ), "sa.CheckConstraint('c > 5 AND c < 10')" )
def test_render_enum(self): eq_ignore_whitespace( autogenerate._repr_type( "sa.", Enum("one", "two", "three", name="myenum"), self.autogen_context), "sa.Enum('one', 'two', 'three', name='myenum')" ) eq_ignore_whitespace( autogenerate._repr_type( "sa.", Enum("one", "two", "three"), self.autogen_context), "sa.Enum('one', 'two', 'three')" )
def test_render_table_w_fk_schema(self): m = MetaData() t = Table('test', m, Column('id', Integer, primary_key=True), Column('q', Integer, ForeignKey('foo.address.id')), ) eq_ignore_whitespace( autogenerate._add_table(t, self.autogen_context), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.Column('q', sa.Integer(), nullable=True)," "sa.ForeignKeyConstraint(['q'], ['foo.address.id'], )," "sa.PrimaryKeyConstraint('id')" ")" )
def test_render_addtl_args(self): m = MetaData() t = Table('test', m, Column('id', Integer, primary_key=True), Column('q', Integer, ForeignKey('bar.address.id')), postgresql_arg1="some_arg", mysql_engine="InnoDB" ) eq_ignore_whitespace( autogenerate._add_table(t, self.autogen_context), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.Column('q', sa.Integer(), nullable=True)," "sa.ForeignKeyConstraint(['q'], ['bar.address.id'], )," "sa.PrimaryKeyConstraint('id')," "mysql_engine='InnoDB',postgresql_arg1='some_arg')" )
def test_render_fk_constraint_kwarg(self): m = MetaData() t1 = Table('t', m, Column('c', Integer)) t2 = Table('t2', m, Column('c_rem', Integer)) fk = ForeignKeyConstraint([t1.c.c], [t2.c.c_rem], onupdate="CASCADE") if not util.sqla_08: t1.append_constraint(fk) eq_ignore_whitespace( autogenerate._render_constraint(fk, self.autogen_context), "sa.ForeignKeyConstraint(['c'], ['t2.c_rem'], onupdate='CASCADE')" ) fk = ForeignKeyConstraint([t1.c.c], [t2.c.c_rem], ondelete="CASCADE") if not util.sqla_08: t1.append_constraint(fk) eq_ignore_whitespace( autogenerate._render_constraint(fk, self.autogen_context), "sa.ForeignKeyConstraint(['c'], ['t2.c_rem'], ondelete='CASCADE')" ) fk = ForeignKeyConstraint([t1.c.c], [t2.c.c_rem], deferrable=True) if not util.sqla_08: t1.append_constraint(fk) eq_ignore_whitespace( autogenerate._render_constraint(fk, self.autogen_context), "sa.ForeignKeyConstraint(['c'], ['t2.c_rem'], deferrable=True)" ) fk = ForeignKeyConstraint([t1.c.c], [t2.c.c_rem], initially="XYZ") if not util.sqla_08: t1.append_constraint(fk) eq_ignore_whitespace( autogenerate._render_constraint(fk, self.autogen_context), "sa.ForeignKeyConstraint(['c'], ['t2.c_rem'], initially='XYZ')" )
def test_render_check_constraint_literal(self): eq_ignore_whitespace( autogenerate._render_check_constraint( CheckConstraint("im a constraint"), self.autogen_context), "sa.CheckConstraint('im a constraint')")