diff options
Diffstat (limited to 'test/sql/test_constraints.py')
-rw-r--r-- | test/sql/test_constraints.py | 1240 |
1 files changed, 701 insertions, 539 deletions
diff --git a/test/sql/test_constraints.py b/test/sql/test_constraints.py index 3365b3cf0..a5d2043ce 100644 --- a/test/sql/test_constraints.py +++ b/test/sql/test_constraints.py @@ -1,81 +1,109 @@ from sqlalchemy.testing import assert_raises, assert_raises_message -from sqlalchemy import Table, Integer, String, Column, PrimaryKeyConstraint,\ - ForeignKeyConstraint, ForeignKey, UniqueConstraint, Index, MetaData, \ - CheckConstraint, func, text +from sqlalchemy import ( + Table, + Integer, + String, + Column, + PrimaryKeyConstraint, + ForeignKeyConstraint, + ForeignKey, + UniqueConstraint, + Index, + MetaData, + CheckConstraint, + func, + text, +) from sqlalchemy import exc, schema -from sqlalchemy.testing import fixtures, AssertsExecutionResults, \ - AssertsCompiledSQL +from sqlalchemy.testing import ( + fixtures, + AssertsExecutionResults, + AssertsCompiledSQL, +) from sqlalchemy import testing from sqlalchemy.engine import default from sqlalchemy.testing import engines from sqlalchemy.testing.assertions import expect_warnings from sqlalchemy.testing import eq_ -from sqlalchemy.testing.assertsql import (AllOf, - RegexSQL, - CompiledSQL, - DialectSQL) +from sqlalchemy.testing.assertsql import ( + AllOf, + RegexSQL, + CompiledSQL, + DialectSQL, +) from sqlalchemy.sql import table, column class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): - __dialect__ = 'default' + __dialect__ = "default" __backend__ = True @testing.provide_metadata def test_pk_fk_constraint_create(self): metadata = self.metadata - Table('employees', metadata, - Column('id', Integer), - Column('soc', String(40)), - Column('name', String(30)), - PrimaryKeyConstraint('id', 'soc') - ) - Table('elements', metadata, - Column('id', Integer), - Column('stuff', String(30)), - Column('emp_id', Integer), - Column('emp_soc', String(40)), - PrimaryKeyConstraint('id', name='elements_primkey'), - ForeignKeyConstraint(['emp_id', 'emp_soc'], - ['employees.id', 'employees.soc']) - ) + Table( + "employees", + metadata, + Column("id", Integer), + Column("soc", String(40)), + Column("name", String(30)), + PrimaryKeyConstraint("id", "soc"), + ) + Table( + "elements", + metadata, + Column("id", Integer), + Column("stuff", String(30)), + Column("emp_id", Integer), + Column("emp_soc", String(40)), + PrimaryKeyConstraint("id", name="elements_primkey"), + ForeignKeyConstraint( + ["emp_id", "emp_soc"], ["employees.id", "employees.soc"] + ), + ) self.assert_sql_execution( testing.db, lambda: metadata.create_all(checkfirst=False), - CompiledSQL('CREATE TABLE employees (' - 'id INTEGER NOT NULL, ' - 'soc VARCHAR(40) NOT NULL, ' - 'name VARCHAR(30), ' - 'PRIMARY KEY (id, soc)' - ')' - ), - CompiledSQL('CREATE TABLE elements (' - 'id INTEGER NOT NULL, ' - 'stuff VARCHAR(30), ' - 'emp_id INTEGER, ' - 'emp_soc VARCHAR(40), ' - 'CONSTRAINT elements_primkey PRIMARY KEY (id), ' - 'FOREIGN KEY(emp_id, emp_soc) ' - 'REFERENCES employees (id, soc)' - ')' - ) - ) - - @testing.force_drop_names('a', 'b') + CompiledSQL( + "CREATE TABLE employees (" + "id INTEGER NOT NULL, " + "soc VARCHAR(40) NOT NULL, " + "name VARCHAR(30), " + "PRIMARY KEY (id, soc)" + ")" + ), + CompiledSQL( + "CREATE TABLE elements (" + "id INTEGER NOT NULL, " + "stuff VARCHAR(30), " + "emp_id INTEGER, " + "emp_soc VARCHAR(40), " + "CONSTRAINT elements_primkey PRIMARY KEY (id), " + "FOREIGN KEY(emp_id, emp_soc) " + "REFERENCES employees (id, soc)" + ")" + ), + ) + + @testing.force_drop_names("a", "b") def test_fk_cant_drop_cycled_unnamed(self): metadata = MetaData() - Table("a", metadata, - Column('id', Integer, primary_key=True), - Column('bid', Integer), - ForeignKeyConstraint(["bid"], ["b.id"]) - ) Table( - "b", metadata, - Column('id', Integer, primary_key=True), + "a", + metadata, + Column("id", Integer, primary_key=True), + Column("bid", Integer), + ForeignKeyConstraint(["bid"], ["b.id"]), + ) + Table( + "b", + metadata, + Column("id", Integer, primary_key=True), Column("aid", Integer), - ForeignKeyConstraint(["aid"], ["a.id"])) + ForeignKeyConstraint(["aid"], ["a.id"]), + ) metadata.create_all(testing.db) if testing.db.dialect.supports_alter: assert_raises_message( @@ -85,159 +113,186 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): "that the ForeignKey and ForeignKeyConstraint objects " "involved in the cycle have names so that they can be " "dropped using DROP CONSTRAINT.", - metadata.drop_all, testing.db + metadata.drop_all, + testing.db, ) else: with expect_warnings( - "Can't sort tables for DROP; an unresolvable " - "foreign key dependency "): + "Can't sort tables for DROP; an unresolvable " + "foreign key dependency " + ): with self.sql_execution_asserter() as asserter: metadata.drop_all(testing.db, checkfirst=False) asserter.assert_( - AllOf( - CompiledSQL("DROP TABLE a"), - CompiledSQL("DROP TABLE b") - ) + AllOf(CompiledSQL("DROP TABLE a"), CompiledSQL("DROP TABLE b")) ) @testing.provide_metadata def test_fk_table_auto_alter_constraint_create(self): metadata = self.metadata - Table("a", metadata, - Column('id', Integer, primary_key=True), - Column('bid', Integer), - ForeignKeyConstraint(["bid"], ["b.id"]) - ) Table( - "b", metadata, - Column('id', Integer, primary_key=True), + "a", + metadata, + Column("id", Integer, primary_key=True), + Column("bid", Integer), + ForeignKeyConstraint(["bid"], ["b.id"]), + ) + Table( + "b", + metadata, + Column("id", Integer, primary_key=True), Column("aid", Integer), - ForeignKeyConstraint(["aid"], ["a.id"], name="bfk")) + ForeignKeyConstraint(["aid"], ["a.id"], name="bfk"), + ) self._assert_cyclic_constraint( - metadata, auto=True, sqlite_warning=True) + metadata, auto=True, sqlite_warning=True + ) @testing.provide_metadata def test_fk_column_auto_alter_inline_constraint_create(self): metadata = self.metadata - Table("a", metadata, - Column('id', Integer, primary_key=True), - Column('bid', Integer, ForeignKey("b.id")), - ) - Table("b", metadata, - Column('id', Integer, primary_key=True), - Column("aid", Integer, - ForeignKey("a.id", name="bfk") - ), - ) + Table( + "a", + metadata, + Column("id", Integer, primary_key=True), + Column("bid", Integer, ForeignKey("b.id")), + ) + Table( + "b", + metadata, + Column("id", Integer, primary_key=True), + Column("aid", Integer, ForeignKey("a.id", name="bfk")), + ) self._assert_cyclic_constraint( - metadata, auto=True, sqlite_warning=True) + metadata, auto=True, sqlite_warning=True + ) @testing.provide_metadata def test_fk_column_use_alter_inline_constraint_create(self): metadata = self.metadata - Table("a", metadata, - Column('id', Integer, primary_key=True), - Column('bid', Integer, ForeignKey("b.id")), - ) - Table("b", metadata, - Column('id', Integer, primary_key=True), - Column("aid", Integer, - ForeignKey("a.id", name="bfk", use_alter=True) - ), - ) + Table( + "a", + metadata, + Column("id", Integer, primary_key=True), + Column("bid", Integer, ForeignKey("b.id")), + ) + Table( + "b", + metadata, + Column("id", Integer, primary_key=True), + Column( + "aid", Integer, ForeignKey("a.id", name="bfk", use_alter=True) + ), + ) self._assert_cyclic_constraint(metadata, auto=False) @testing.provide_metadata def test_fk_table_use_alter_constraint_create(self): metadata = self.metadata - Table("a", metadata, - Column('id', Integer, primary_key=True), - Column('bid', Integer), - ForeignKeyConstraint(["bid"], ["b.id"]) - ) Table( - "b", metadata, - Column('id', Integer, primary_key=True), + "a", + metadata, + Column("id", Integer, primary_key=True), + Column("bid", Integer), + ForeignKeyConstraint(["bid"], ["b.id"]), + ) + Table( + "b", + metadata, + Column("id", Integer, primary_key=True), Column("aid", Integer), ForeignKeyConstraint( - ["aid"], ["a.id"], use_alter=True, name="bfk")) + ["aid"], ["a.id"], use_alter=True, name="bfk" + ), + ) self._assert_cyclic_constraint(metadata) @testing.provide_metadata def test_fk_column_use_alter_constraint_create(self): metadata = self.metadata - Table("a", metadata, - Column('id', Integer, primary_key=True), - Column('bid', Integer, ForeignKey("b.id")), - ) - Table("b", metadata, - Column('id', Integer, primary_key=True), - Column("aid", Integer, - ForeignKey("a.id", use_alter=True, name="bfk") - ), - ) + Table( + "a", + metadata, + Column("id", Integer, primary_key=True), + Column("bid", Integer, ForeignKey("b.id")), + ) + Table( + "b", + metadata, + Column("id", Integer, primary_key=True), + Column( + "aid", Integer, ForeignKey("a.id", use_alter=True, name="bfk") + ), + ) self._assert_cyclic_constraint(metadata, auto=False) def _assert_cyclic_constraint( - self, metadata, auto=False, sqlite_warning=False): + self, metadata, auto=False, sqlite_warning=False + ): if testing.db.dialect.supports_alter: self._assert_cyclic_constraint_supports_alter(metadata, auto=auto) else: self._assert_cyclic_constraint_no_alter( - metadata, auto=auto, sqlite_warning=sqlite_warning) + metadata, auto=auto, sqlite_warning=sqlite_warning + ) def _assert_cyclic_constraint_supports_alter(self, metadata, auto=False): table_assertions = [] if auto: table_assertions = [ - CompiledSQL('CREATE TABLE b (' - 'id INTEGER NOT NULL, ' - 'aid INTEGER, ' - 'PRIMARY KEY (id)' - ')' - ), CompiledSQL( - 'CREATE TABLE a (' - 'id INTEGER NOT NULL, ' - 'bid INTEGER, ' - 'PRIMARY KEY (id)' - ')' - ) + "CREATE TABLE b (" + "id INTEGER NOT NULL, " + "aid INTEGER, " + "PRIMARY KEY (id)" + ")" + ), + CompiledSQL( + "CREATE TABLE a (" + "id INTEGER NOT NULL, " + "bid INTEGER, " + "PRIMARY KEY (id)" + ")" + ), ] else: table_assertions = [ - CompiledSQL('CREATE TABLE b (' - 'id INTEGER NOT NULL, ' - 'aid INTEGER, ' - 'PRIMARY KEY (id)' - ')' - ), CompiledSQL( - 'CREATE TABLE a (' - 'id INTEGER NOT NULL, ' - 'bid INTEGER, ' - 'PRIMARY KEY (id), ' - 'FOREIGN KEY(bid) REFERENCES b (id)' - ')' - ) + "CREATE TABLE b (" + "id INTEGER NOT NULL, " + "aid INTEGER, " + "PRIMARY KEY (id)" + ")" + ), + CompiledSQL( + "CREATE TABLE a (" + "id INTEGER NOT NULL, " + "bid INTEGER, " + "PRIMARY KEY (id), " + "FOREIGN KEY(bid) REFERENCES b (id)" + ")" + ), ] assertions = [AllOf(*table_assertions)] fk_assertions = [] fk_assertions.append( - CompiledSQL('ALTER TABLE b ADD CONSTRAINT bfk ' - 'FOREIGN KEY(aid) REFERENCES a (id)') + CompiledSQL( + "ALTER TABLE b ADD CONSTRAINT bfk " + "FOREIGN KEY(aid) REFERENCES a (id)" + ) ) if auto: fk_assertions.append( - CompiledSQL('ALTER TABLE a ADD ' - 'FOREIGN KEY(bid) REFERENCES b (id)') + CompiledSQL( + "ALTER TABLE a ADD " "FOREIGN KEY(bid) REFERENCES b (id)" + ) ) assertions.append(AllOf(*fk_assertions)) @@ -246,9 +301,9 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): asserter.assert_(*assertions) assertions = [ - CompiledSQL('ALTER TABLE b DROP CONSTRAINT bfk'), + CompiledSQL("ALTER TABLE b DROP CONSTRAINT bfk"), CompiledSQL("DROP TABLE a"), - CompiledSQL("DROP TABLE b") + CompiledSQL("DROP TABLE b"), ] with self.sql_execution_asserter() as asserter: @@ -256,49 +311,50 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): asserter.assert_(*assertions) def _assert_cyclic_constraint_no_alter( - self, metadata, auto=False, sqlite_warning=False): + self, metadata, auto=False, sqlite_warning=False + ): table_assertions = [] if auto: table_assertions.append( DialectSQL( - 'CREATE TABLE b (' - 'id INTEGER NOT NULL, ' - 'aid INTEGER, ' - 'PRIMARY KEY (id), ' - 'CONSTRAINT bfk FOREIGN KEY(aid) REFERENCES a (id)' - ')' + "CREATE TABLE b (" + "id INTEGER NOT NULL, " + "aid INTEGER, " + "PRIMARY KEY (id), " + "CONSTRAINT bfk FOREIGN KEY(aid) REFERENCES a (id)" + ")" ) ) table_assertions.append( DialectSQL( - 'CREATE TABLE a (' - 'id INTEGER NOT NULL, ' - 'bid INTEGER, ' - 'PRIMARY KEY (id), ' - 'FOREIGN KEY(bid) REFERENCES b (id)' - ')' + "CREATE TABLE a (" + "id INTEGER NOT NULL, " + "bid INTEGER, " + "PRIMARY KEY (id), " + "FOREIGN KEY(bid) REFERENCES b (id)" + ")" ) ) else: table_assertions.append( DialectSQL( - 'CREATE TABLE b (' - 'id INTEGER NOT NULL, ' - 'aid INTEGER, ' - 'PRIMARY KEY (id), ' - 'CONSTRAINT bfk FOREIGN KEY(aid) REFERENCES a (id)' - ')' + "CREATE TABLE b (" + "id INTEGER NOT NULL, " + "aid INTEGER, " + "PRIMARY KEY (id), " + "CONSTRAINT bfk FOREIGN KEY(aid) REFERENCES a (id)" + ")" ) ) table_assertions.append( DialectSQL( - 'CREATE TABLE a (' - 'id INTEGER NOT NULL, ' - 'bid INTEGER, ' - 'PRIMARY KEY (id), ' - 'FOREIGN KEY(bid) REFERENCES b (id)' - ')' + "CREATE TABLE a (" + "id INTEGER NOT NULL, " + "bid INTEGER, " + "PRIMARY KEY (id), " + "FOREIGN KEY(bid) REFERENCES b (id)" + ")" ) ) @@ -308,10 +364,9 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): metadata.create_all(checkfirst=False) asserter.assert_(*assertions) - assertions = [AllOf( - CompiledSQL("DROP TABLE a"), - CompiledSQL("DROP TABLE b") - )] + assertions = [ + AllOf(CompiledSQL("DROP TABLE a"), CompiledSQL("DROP TABLE b")) + ] if sqlite_warning: with expect_warnings("Can't sort tables for DROP; "): @@ -326,38 +381,44 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): def test_cycle_unnamed_fks(self): metadata = MetaData(testing.db) - Table("a", metadata, - Column('id', Integer, primary_key=True), - Column('bid', Integer, ForeignKey("b.id")), - ) + Table( + "a", + metadata, + Column("id", Integer, primary_key=True), + Column("bid", Integer, ForeignKey("b.id")), + ) - Table("b", metadata, - Column('id', Integer, primary_key=True), - Column("aid", Integer, ForeignKey("a.id")), - ) + Table( + "b", + metadata, + Column("id", Integer, primary_key=True), + Column("aid", Integer, ForeignKey("a.id")), + ) assertions = [ AllOf( CompiledSQL( - 'CREATE TABLE b (' - 'id INTEGER NOT NULL, ' - 'aid INTEGER, ' - 'PRIMARY KEY (id)' - ')' + "CREATE TABLE b (" + "id INTEGER NOT NULL, " + "aid INTEGER, " + "PRIMARY KEY (id)" + ")" ), CompiledSQL( - 'CREATE TABLE a (' - 'id INTEGER NOT NULL, ' - 'bid INTEGER, ' - 'PRIMARY KEY (id)' - ')' - ) + "CREATE TABLE a (" + "id INTEGER NOT NULL, " + "bid INTEGER, " + "PRIMARY KEY (id)" + ")" + ), ), AllOf( - CompiledSQL('ALTER TABLE b ADD ' - 'FOREIGN KEY(aid) REFERENCES a (id)'), - CompiledSQL('ALTER TABLE a ADD ' - 'FOREIGN KEY(bid) REFERENCES b (id)') + CompiledSQL( + "ALTER TABLE b ADD " "FOREIGN KEY(aid) REFERENCES a (id)" + ), + CompiledSQL( + "ALTER TABLE a ADD " "FOREIGN KEY(bid) REFERENCES b (id)" + ), ), ] with self.sql_execution_asserter() as asserter: @@ -374,58 +435,65 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): "ForeignKey and ForeignKeyConstraint objects involved in the " "cycle have names so that they can be dropped using " "DROP CONSTRAINT.", - metadata.drop_all, checkfirst=False + metadata.drop_all, + checkfirst=False, ) else: with expect_warnings( - "Can't sort tables for DROP; an unresolvable " - "foreign key dependency exists between tables"): + "Can't sort tables for DROP; an unresolvable " + "foreign key dependency exists between tables" + ): with self.sql_execution_asserter() as asserter: metadata.drop_all(checkfirst=False) asserter.assert_( - AllOf( - CompiledSQL("DROP TABLE b"), - CompiledSQL("DROP TABLE a"), - ) + AllOf(CompiledSQL("DROP TABLE b"), CompiledSQL("DROP TABLE a")) ) @testing.force_drop_names("a", "b") def test_cycle_named_fks(self): metadata = MetaData(testing.db) - Table("a", metadata, - Column('id', Integer, primary_key=True), - Column('bid', Integer, ForeignKey("b.id")), - ) + Table( + "a", + metadata, + Column("id", Integer, primary_key=True), + Column("bid", Integer, ForeignKey("b.id")), + ) - Table("b", metadata, - Column('id', Integer, primary_key=True), - Column( - "aid", Integer, - ForeignKey("a.id", use_alter=True, name='aidfk')), - ) + Table( + "b", + metadata, + Column("id", Integer, primary_key=True), + Column( + "aid", + Integer, + ForeignKey("a.id", use_alter=True, name="aidfk"), + ), + ) assertions = [ AllOf( CompiledSQL( - 'CREATE TABLE b (' - 'id INTEGER NOT NULL, ' - 'aid INTEGER, ' - 'PRIMARY KEY (id)' - ')' + "CREATE TABLE b (" + "id INTEGER NOT NULL, " + "aid INTEGER, " + "PRIMARY KEY (id)" + ")" ), CompiledSQL( - 'CREATE TABLE a (' - 'id INTEGER NOT NULL, ' - 'bid INTEGER, ' - 'PRIMARY KEY (id), ' - 'FOREIGN KEY(bid) REFERENCES b (id)' - ')' - ) + "CREATE TABLE a (" + "id INTEGER NOT NULL, " + "bid INTEGER, " + "PRIMARY KEY (id), " + "FOREIGN KEY(bid) REFERENCES b (id)" + ")" + ), + ), + CompiledSQL( + "ALTER TABLE b ADD CONSTRAINT aidfk " + "FOREIGN KEY(aid) REFERENCES a (id)" ), - CompiledSQL('ALTER TABLE b ADD CONSTRAINT aidfk ' - 'FOREIGN KEY(aid) REFERENCES a (id)'), ] with self.sql_execution_asserter() as asserter: metadata.create_all(checkfirst=False) @@ -439,19 +507,15 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): asserter.assert_( CompiledSQL("ALTER TABLE b DROP CONSTRAINT aidfk"), AllOf( - CompiledSQL("DROP TABLE b"), - CompiledSQL("DROP TABLE a"), - ) + CompiledSQL("DROP TABLE b"), CompiledSQL("DROP TABLE a") + ), ) else: with self.sql_execution_asserter() as asserter: metadata.drop_all(checkfirst=False) asserter.assert_( - AllOf( - CompiledSQL("DROP TABLE b"), - CompiledSQL("DROP TABLE a"), - ), + AllOf(CompiledSQL("DROP TABLE b"), CompiledSQL("DROP TABLE a")) ) @testing.requires.check_constraints @@ -459,89 +523,112 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): def test_check_constraint_create(self): metadata = self.metadata - Table('foo', metadata, - Column('id', Integer, primary_key=True), - Column('x', Integer), - Column('y', Integer), - CheckConstraint('x>y')) - Table('bar', metadata, - Column('id', Integer, primary_key=True), - Column('x', Integer, CheckConstraint('x>7')), - Column('z', Integer) - ) + Table( + "foo", + metadata, + Column("id", Integer, primary_key=True), + Column("x", Integer), + Column("y", Integer), + CheckConstraint("x>y"), + ) + Table( + "bar", + metadata, + Column("id", Integer, primary_key=True), + Column("x", Integer, CheckConstraint("x>7")), + Column("z", Integer), + ) self.assert_sql_execution( testing.db, lambda: metadata.create_all(checkfirst=False), AllOf( - CompiledSQL('CREATE TABLE foo (' - 'id INTEGER NOT NULL, ' - 'x INTEGER, ' - 'y INTEGER, ' - 'PRIMARY KEY (id), ' - 'CHECK (x>y)' - ')' - ), - CompiledSQL('CREATE TABLE bar (' - 'id INTEGER NOT NULL, ' - 'x INTEGER CHECK (x>7), ' - 'z INTEGER, ' - 'PRIMARY KEY (id)' - ')' - ) - ) + CompiledSQL( + "CREATE TABLE foo (" + "id INTEGER NOT NULL, " + "x INTEGER, " + "y INTEGER, " + "PRIMARY KEY (id), " + "CHECK (x>y)" + ")" + ), + CompiledSQL( + "CREATE TABLE bar (" + "id INTEGER NOT NULL, " + "x INTEGER CHECK (x>7), " + "z INTEGER, " + "PRIMARY KEY (id)" + ")" + ), + ), ) @testing.provide_metadata def test_unique_constraint_create(self): metadata = self.metadata - Table('foo', metadata, - Column('id', Integer, primary_key=True), - Column('value', String(30), unique=True)) - Table('bar', metadata, - Column('id', Integer, primary_key=True), - Column('value', String(30)), - Column('value2', String(30)), - UniqueConstraint('value', 'value2', name='uix1') - ) + Table( + "foo", + metadata, + Column("id", Integer, primary_key=True), + Column("value", String(30), unique=True), + ) + Table( + "bar", + metadata, + Column("id", Integer, primary_key=True), + Column("value", String(30)), + Column("value2", String(30)), + UniqueConstraint("value", "value2", name="uix1"), + ) self.assert_sql_execution( testing.db, lambda: metadata.create_all(checkfirst=False), AllOf( - CompiledSQL('CREATE TABLE foo (' - 'id INTEGER NOT NULL, ' - 'value VARCHAR(30), ' - 'PRIMARY KEY (id), ' - 'UNIQUE (value)' - ')'), - CompiledSQL('CREATE TABLE bar (' - 'id INTEGER NOT NULL, ' - 'value VARCHAR(30), ' - 'value2 VARCHAR(30), ' - 'PRIMARY KEY (id), ' - 'CONSTRAINT uix1 UNIQUE (value, value2)' - ')') - ) + CompiledSQL( + "CREATE TABLE foo (" + "id INTEGER NOT NULL, " + "value VARCHAR(30), " + "PRIMARY KEY (id), " + "UNIQUE (value)" + ")" + ), + CompiledSQL( + "CREATE TABLE bar (" + "id INTEGER NOT NULL, " + "value VARCHAR(30), " + "value2 VARCHAR(30), " + "PRIMARY KEY (id), " + "CONSTRAINT uix1 UNIQUE (value, value2)" + ")" + ), + ), ) @testing.provide_metadata def test_index_create(self): metadata = self.metadata - employees = Table('employees', metadata, - Column('id', Integer, primary_key=True), - Column('first_name', String(30)), - Column('last_name', String(30)), - Column('email_address', String(30))) + employees = Table( + "employees", + metadata, + Column("id", Integer, primary_key=True), + Column("first_name", String(30)), + Column("last_name", String(30)), + Column("email_address", String(30)), + ) - i = Index('employee_name_index', - employees.c.last_name, employees.c.first_name) + i = Index( + "employee_name_index", + employees.c.last_name, + employees.c.first_name, + ) assert i in employees.indexes - i2 = Index('employee_email_index', - employees.c.email_address, unique=True) + i2 = Index( + "employee_email_index", employees.c.email_address, unique=True + ) assert i2 in employees.indexes self.assert_sql_execution( @@ -549,11 +636,17 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): lambda: metadata.create_all(checkfirst=False), RegexSQL("^CREATE TABLE"), AllOf( - CompiledSQL('CREATE INDEX employee_name_index ON ' - 'employees (last_name, first_name)', []), - CompiledSQL('CREATE UNIQUE INDEX employee_email_index ON ' - 'employees (email_address)', []) - ) + CompiledSQL( + "CREATE INDEX employee_name_index ON " + "employees (last_name, first_name)", + [], + ), + CompiledSQL( + "CREATE UNIQUE INDEX employee_email_index ON " + "employees (email_address)", + [], + ), + ), ) @testing.provide_metadata @@ -562,27 +655,36 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): metadata = self.metadata - employees = Table('companyEmployees', metadata, - Column('id', Integer, primary_key=True), - Column('firstName', String(30)), - Column('lastName', String(30)), - Column('emailAddress', String(30))) + employees = Table( + "companyEmployees", + metadata, + Column("id", Integer, primary_key=True), + Column("firstName", String(30)), + Column("lastName", String(30)), + Column("emailAddress", String(30)), + ) - Index('employeeNameIndex', - employees.c.lastName, employees.c.firstName) + Index("employeeNameIndex", employees.c.lastName, employees.c.firstName) - Index('employeeEmailIndex', - employees.c.emailAddress, unique=True) + Index("employeeEmailIndex", employees.c.emailAddress, unique=True) self.assert_sql_execution( - testing.db, lambda: metadata.create_all( - checkfirst=False), RegexSQL("^CREATE TABLE"), AllOf( + testing.db, + lambda: metadata.create_all(checkfirst=False), + RegexSQL("^CREATE TABLE"), + AllOf( CompiledSQL( 'CREATE INDEX "employeeNameIndex" ON ' - '"companyEmployees" ("lastName", "firstName")', []), + '"companyEmployees" ("lastName", "firstName")', + [], + ), CompiledSQL( 'CREATE UNIQUE INDEX "employeeEmailIndex" ON ' - '"companyEmployees" ("emailAddress")', []))) + '"companyEmployees" ("emailAddress")', + [], + ), + ), + ) @testing.provide_metadata def test_index_create_inline(self): @@ -590,22 +692,32 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): metadata = self.metadata - events = Table('events', metadata, - Column('id', Integer, primary_key=True), - Column('name', String(30), index=True, unique=True), - Column('location', String(30), index=True), - Column('sport', String(30)), - Column('announcer', String(30)), - Column('winner', String(30))) + events = Table( + "events", + metadata, + Column("id", Integer, primary_key=True), + Column("name", String(30), index=True, unique=True), + Column("location", String(30), index=True), + Column("sport", String(30)), + Column("announcer", String(30)), + Column("winner", String(30)), + ) - Index('sport_announcer', events.c.sport, events.c.announcer, - unique=True) - Index('idx_winners', events.c.winner) + Index( + "sport_announcer", events.c.sport, events.c.announcer, unique=True + ) + Index("idx_winners", events.c.winner) eq_( set(ix.name for ix in events.indexes), - set(['ix_events_name', 'ix_events_location', - 'sport_announcer', 'idx_winners']) + set( + [ + "ix_events_name", + "ix_events_location", + "sport_announcer", + "idx_winners", + ] + ), ) self.assert_sql_execution( @@ -613,72 +725,71 @@ class ConstraintGenTest(fixtures.TestBase, AssertsExecutionResults): lambda: events.create(testing.db), RegexSQL("^CREATE TABLE events"), AllOf( - CompiledSQL('CREATE UNIQUE INDEX ix_events_name ON events ' - '(name)'), - CompiledSQL('CREATE INDEX ix_events_location ON events ' - '(location)'), - CompiledSQL('CREATE UNIQUE INDEX sport_announcer ON events ' - '(sport, announcer)'), - CompiledSQL('CREATE INDEX idx_winners ON events (winner)'), - ) + CompiledSQL( + "CREATE UNIQUE INDEX ix_events_name ON events " "(name)" + ), + CompiledSQL( + "CREATE INDEX ix_events_location ON events " "(location)" + ), + CompiledSQL( + "CREATE UNIQUE INDEX sport_announcer ON events " + "(sport, announcer)" + ), + CompiledSQL("CREATE INDEX idx_winners ON events (winner)"), + ), ) @testing.provide_metadata def test_index_functional_create(self): metadata = self.metadata - t = Table('sometable', metadata, - Column('id', Integer, primary_key=True), - Column('data', String(50)) - ) - Index('myindex', t.c.data.desc()) + t = Table( + "sometable", + metadata, + Column("id", Integer, primary_key=True), + Column("data", String(50)), + ) + Index("myindex", t.c.data.desc()) self.assert_sql_execution( testing.db, lambda: t.create(testing.db), - CompiledSQL('CREATE TABLE sometable (id INTEGER NOT NULL, ' - 'data VARCHAR(50), PRIMARY KEY (id))'), - CompiledSQL('CREATE INDEX myindex ON sometable (data DESC)') + CompiledSQL( + "CREATE TABLE sometable (id INTEGER NOT NULL, " + "data VARCHAR(50), PRIMARY KEY (id))" + ), + CompiledSQL("CREATE INDEX myindex ON sometable (data DESC)"), ) class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): - __dialect__ = 'default' + __dialect__ = "default" def test_create_index_plain(self): - t = Table('t', MetaData(), Column('x', Integer)) + t = Table("t", MetaData(), Column("x", Integer)) i = Index("xyz", t.c.x) - self.assert_compile( - schema.CreateIndex(i), - "CREATE INDEX xyz ON t (x)" - ) + self.assert_compile(schema.CreateIndex(i), "CREATE INDEX xyz ON t (x)") def test_drop_index_plain_unattached(self): self.assert_compile( - schema.DropIndex(Index(name="xyz")), - "DROP INDEX xyz" + schema.DropIndex(Index(name="xyz")), "DROP INDEX xyz" ) def test_drop_index_plain(self): self.assert_compile( - schema.DropIndex(Index(name="xyz")), - "DROP INDEX xyz" + schema.DropIndex(Index(name="xyz")), "DROP INDEX xyz" ) def test_create_index_schema(self): - t = Table('t', MetaData(), Column('x', Integer), schema="foo") + t = Table("t", MetaData(), Column("x", Integer), schema="foo") i = Index("xyz", t.c.x) self.assert_compile( - schema.CreateIndex(i), - "CREATE INDEX xyz ON foo.t (x)" + schema.CreateIndex(i), "CREATE INDEX xyz ON foo.t (x)" ) def test_drop_index_schema(self): - t = Table('t', MetaData(), Column('x', Integer), schema="foo") + t = Table("t", MetaData(), Column("x", Integer), schema="foo") i = Index("xyz", t.c.x) - self.assert_compile( - schema.DropIndex(i), - "DROP INDEX foo.xyz" - ) + self.assert_compile(schema.DropIndex(i), "DROP INDEX foo.xyz") def test_too_long_index_name(self): dialect = testing.db.dialect.__class__() @@ -688,157 +799,171 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): dialect.max_index_name_length = max_index for tname, cname, exp in [ - ('sometable', 'this_name_is_too_long', 'ix_sometable_t_09aa'), - ('sometable', 'this_name_alsois_long', 'ix_sometable_t_3cf1'), + ("sometable", "this_name_is_too_long", "ix_sometable_t_09aa"), + ("sometable", "this_name_alsois_long", "ix_sometable_t_3cf1"), ]: - t1 = Table(tname, MetaData(), - Column(cname, Integer, index=True), - ) + t1 = Table( + tname, MetaData(), Column(cname, Integer, index=True) + ) ix1 = list(t1.indexes)[0] self.assert_compile( schema.CreateIndex(ix1), - "CREATE INDEX %s " - "ON %s (%s)" % (exp, tname, cname), - dialect=dialect + "CREATE INDEX %s " "ON %s (%s)" % (exp, tname, cname), + dialect=dialect, ) dialect.max_identifier_length = 22 dialect.max_index_name_length = None - t1 = Table('t', MetaData(), Column('c', Integer)) + t1 = Table("t", MetaData(), Column("c", Integer)) assert_raises( exc.IdentifierError, - schema.CreateIndex(Index( - "this_other_name_is_too_long_for_what_were_doing", - t1.c.c)).compile, - dialect=dialect + schema.CreateIndex( + Index( + "this_other_name_is_too_long_for_what_were_doing", t1.c.c + ) + ).compile, + dialect=dialect, ) def test_functional_index(self): metadata = MetaData() - x = Table('x', metadata, - Column('q', String(50)) - ) - idx = Index('y', func.lower(x.c.q)) + x = Table("x", metadata, Column("q", String(50))) + idx = Index("y", func.lower(x.c.q)) self.assert_compile( - schema.CreateIndex(idx), - "CREATE INDEX y ON x (lower(q))" + schema.CreateIndex(idx), "CREATE INDEX y ON x (lower(q))" ) self.assert_compile( schema.CreateIndex(idx), "CREATE INDEX y ON x (lower(q))", - dialect=testing.db.dialect + dialect=testing.db.dialect, ) def test_index_against_text_separate(self): metadata = MetaData() - idx = Index('y', text("some_function(q)")) - t = Table('x', metadata, - Column('q', String(50)) - ) + idx = Index("y", text("some_function(q)")) + t = Table("x", metadata, Column("q", String(50))) t.append_constraint(idx) self.assert_compile( - schema.CreateIndex(idx), - "CREATE INDEX y ON x (some_function(q))" + schema.CreateIndex(idx), "CREATE INDEX y ON x (some_function(q))" ) def test_index_against_text_inline(self): metadata = MetaData() - idx = Index('y', text("some_function(q)")) - x = Table('x', metadata, - Column('q', String(50)), - idx - ) + idx = Index("y", text("some_function(q)")) + x = Table("x", metadata, Column("q", String(50)), idx) self.assert_compile( - schema.CreateIndex(idx), - "CREATE INDEX y ON x (some_function(q))" + schema.CreateIndex(idx), "CREATE INDEX y ON x (some_function(q))" ) def test_index_declaration_inline(self): metadata = MetaData() - t1 = Table('t1', metadata, - Column('x', Integer), - Column('y', Integer), - Index('foo', 'x', 'y') - ) + t1 = Table( + "t1", + metadata, + Column("x", Integer), + Column("y", Integer), + Index("foo", "x", "y"), + ) self.assert_compile( schema.CreateIndex(list(t1.indexes)[0]), - "CREATE INDEX foo ON t1 (x, y)" + "CREATE INDEX foo ON t1 (x, y)", ) def _test_deferrable(self, constraint_factory): dialect = default.DefaultDialect() - t = Table('tbl', MetaData(), - Column('a', Integer), - Column('b', Integer), - constraint_factory(deferrable=True)) + t = Table( + "tbl", + MetaData(), + Column("a", Integer), + Column("b", Integer), + constraint_factory(deferrable=True), + ) sql = str(schema.CreateTable(t).compile(dialect=dialect)) - assert 'DEFERRABLE' in sql, sql - assert 'NOT DEFERRABLE' not in sql, sql + assert "DEFERRABLE" in sql, sql + assert "NOT DEFERRABLE" not in sql, sql - t = Table('tbl', MetaData(), - Column('a', Integer), - Column('b', Integer), - constraint_factory(deferrable=False)) + t = Table( + "tbl", + MetaData(), + Column("a", Integer), + Column("b", Integer), + constraint_factory(deferrable=False), + ) sql = str(schema.CreateTable(t).compile(dialect=dialect)) - assert 'NOT DEFERRABLE' in sql + assert "NOT DEFERRABLE" in sql - t = Table('tbl', MetaData(), - Column('a', Integer), - Column('b', Integer), - constraint_factory(deferrable=True, initially='IMMEDIATE')) + t = Table( + "tbl", + MetaData(), + Column("a", Integer), + Column("b", Integer), + constraint_factory(deferrable=True, initially="IMMEDIATE"), + ) sql = str(schema.CreateTable(t).compile(dialect=dialect)) - assert 'NOT DEFERRABLE' not in sql - assert 'INITIALLY IMMEDIATE' in sql + assert "NOT DEFERRABLE" not in sql + assert "INITIALLY IMMEDIATE" in sql - t = Table('tbl', MetaData(), - Column('a', Integer), - Column('b', Integer), - constraint_factory(deferrable=True, initially='DEFERRED')) + t = Table( + "tbl", + MetaData(), + Column("a", Integer), + Column("b", Integer), + constraint_factory(deferrable=True, initially="DEFERRED"), + ) sql = str(schema.CreateTable(t).compile(dialect=dialect)) - assert 'NOT DEFERRABLE' not in sql - assert 'INITIALLY DEFERRED' in sql + assert "NOT DEFERRABLE" not in sql + assert "INITIALLY DEFERRED" in sql def test_column_level_ck_name(self): t = Table( - 'tbl', + "tbl", MetaData(), Column( - 'a', + "a", Integer, - CheckConstraint( - "a > 5", - name="ck_a_greater_five"))) + CheckConstraint("a > 5", name="ck_a_greater_five"), + ), + ) self.assert_compile( schema.CreateTable(t), "CREATE TABLE tbl (a INTEGER CONSTRAINT " - "ck_a_greater_five CHECK (a > 5))" + "ck_a_greater_five CHECK (a > 5))", ) def test_deferrable_pk(self): - def factory(**kw): return PrimaryKeyConstraint('a', **kw) + def factory(**kw): + return PrimaryKeyConstraint("a", **kw) + self._test_deferrable(factory) def test_deferrable_table_fk(self): - def factory(**kw): return ForeignKeyConstraint(['b'], ['tbl.a'], **kw) + def factory(**kw): + return ForeignKeyConstraint(["b"], ["tbl.a"], **kw) + self._test_deferrable(factory) def test_deferrable_column_fk(self): - t = Table('tbl', MetaData(), - Column('a', Integer), - Column('b', Integer, - ForeignKey('tbl.a', deferrable=True, - initially='DEFERRED'))) + t = Table( + "tbl", + MetaData(), + Column("a", Integer), + Column( + "b", + Integer, + ForeignKey("tbl.a", deferrable=True, initially="DEFERRED"), + ), + ) self.assert_compile( schema.CreateTable(t), @@ -848,10 +973,12 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): ) def test_fk_match_clause(self): - t = Table('tbl', MetaData(), - Column('a', Integer), - Column('b', Integer, - ForeignKey('tbl.a', match="SIMPLE"))) + t = Table( + "tbl", + MetaData(), + Column("a", Integer), + Column("b", Integer, ForeignKey("tbl.a", match="SIMPLE")), + ) self.assert_compile( schema.CreateTable(t), @@ -863,55 +990,64 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): self.assert_compile( schema.AddConstraint(list(t.foreign_keys)[0].constraint), "ALTER TABLE tbl ADD FOREIGN KEY(b) " - "REFERENCES tbl (a) MATCH SIMPLE" + "REFERENCES tbl (a) MATCH SIMPLE", ) def test_create_table_omit_fks(self): fkcs = [ - ForeignKeyConstraint(['a'], ['remote.id'], name='foo'), - ForeignKeyConstraint(['b'], ['remote.id'], name='bar'), - ForeignKeyConstraint(['c'], ['remote.id'], name='bat'), + ForeignKeyConstraint(["a"], ["remote.id"], name="foo"), + ForeignKeyConstraint(["b"], ["remote.id"], name="bar"), + ForeignKeyConstraint(["c"], ["remote.id"], name="bat"), ] m = MetaData() t = Table( - 't', m, - Column('a', Integer), - Column('b', Integer), - Column('c', Integer), + "t", + m, + Column("a", Integer), + Column("b", Integer), + Column("c", Integer), *fkcs ) - Table('remote', m, Column('id', Integer, primary_key=True)) + Table("remote", m, Column("id", Integer, primary_key=True)) self.assert_compile( schema.CreateTable(t, include_foreign_key_constraints=[]), - "CREATE TABLE t (a INTEGER, b INTEGER, c INTEGER)" + "CREATE TABLE t (a INTEGER, b INTEGER, c INTEGER)", ) self.assert_compile( schema.CreateTable(t, include_foreign_key_constraints=fkcs[0:2]), "CREATE TABLE t (a INTEGER, b INTEGER, c INTEGER, " "CONSTRAINT foo FOREIGN KEY(a) REFERENCES remote (id), " - "CONSTRAINT bar FOREIGN KEY(b) REFERENCES remote (id))" + "CONSTRAINT bar FOREIGN KEY(b) REFERENCES remote (id))", ) def test_deferrable_unique(self): - def factory(**kw): return UniqueConstraint('b', **kw) + def factory(**kw): + return UniqueConstraint("b", **kw) + self._test_deferrable(factory) def test_deferrable_table_check(self): - def factory(**kw): return CheckConstraint('a < b', **kw) + def factory(**kw): + return CheckConstraint("a < b", **kw) + self._test_deferrable(factory) def test_multiple(self): m = MetaData() - Table("foo", m, - Column('id', Integer, primary_key=True), - Column('bar', Integer, primary_key=True) - ) - tb = Table("some_table", m, - Column('id', Integer, primary_key=True), - Column('foo_id', Integer, ForeignKey('foo.id')), - Column('foo_bar', Integer, ForeignKey('foo.bar')), - ) + Table( + "foo", + m, + Column("id", Integer, primary_key=True), + Column("bar", Integer, primary_key=True), + ) + tb = Table( + "some_table", + m, + Column("id", Integer, primary_key=True), + Column("foo_id", Integer, ForeignKey("foo.id")), + Column("foo_bar", Integer, ForeignKey("foo.bar")), + ) self.assert_compile( schema.CreateTable(tb), "CREATE TABLE some_table (" @@ -920,93 +1056,106 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): "foo_bar INTEGER, " "PRIMARY KEY (id), " "FOREIGN KEY(foo_id) REFERENCES foo (id), " - "FOREIGN KEY(foo_bar) REFERENCES foo (bar))" + "FOREIGN KEY(foo_bar) REFERENCES foo (bar))", ) def test_empty_pkc(self): # test that an empty primary key is ignored metadata = MetaData() - tbl = Table('test', metadata, - Column('x', Integer, autoincrement=False), - Column('y', Integer, autoincrement=False), - PrimaryKeyConstraint()) - self.assert_compile(schema.CreateTable(tbl), - "CREATE TABLE test (x INTEGER, y INTEGER)" - ) + tbl = Table( + "test", + metadata, + Column("x", Integer, autoincrement=False), + Column("y", Integer, autoincrement=False), + PrimaryKeyConstraint(), + ) + self.assert_compile( + schema.CreateTable(tbl), "CREATE TABLE test (x INTEGER, y INTEGER)" + ) def test_empty_uc(self): # test that an empty constraint is ignored metadata = MetaData() - tbl = Table('test', metadata, - Column('x', Integer, autoincrement=False), - Column('y', Integer, autoincrement=False), - UniqueConstraint()) - self.assert_compile(schema.CreateTable(tbl), - "CREATE TABLE test (x INTEGER, y INTEGER)" - ) + tbl = Table( + "test", + metadata, + Column("x", Integer, autoincrement=False), + Column("y", Integer, autoincrement=False), + UniqueConstraint(), + ) + self.assert_compile( + schema.CreateTable(tbl), "CREATE TABLE test (x INTEGER, y INTEGER)" + ) def test_deferrable_column_check(self): - t = Table('tbl', MetaData(), - Column('a', Integer), - Column('b', Integer, - CheckConstraint('a < b', - deferrable=True, - initially='DEFERRED'))) + t = Table( + "tbl", + MetaData(), + Column("a", Integer), + Column( + "b", + Integer, + CheckConstraint( + "a < b", deferrable=True, initially="DEFERRED" + ), + ), + ) self.assert_compile( schema.CreateTable(t), "CREATE TABLE tbl (a INTEGER, b INTEGER CHECK (a < b) " - "DEFERRABLE INITIALLY DEFERRED)" + "DEFERRABLE INITIALLY DEFERRED)", ) def test_use_alter(self): m = MetaData() - Table('t', m, - Column('a', Integer), - ) + Table("t", m, Column("a", Integer)) - Table('t2', m, - Column('a', Integer, ForeignKey('t.a', use_alter=True, - name='fk_ta')), - Column('b', Integer, ForeignKey('t.a', name='fk_tb')) - ) + Table( + "t2", + m, + Column( + "a", Integer, ForeignKey("t.a", use_alter=True, name="fk_ta") + ), + Column("b", Integer, ForeignKey("t.a", name="fk_tb")), + ) - e = engines.mock_engine(dialect_name='postgresql') + 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' - ]) + 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", + ] + ) def _constraint_create_fixture(self): m = MetaData() - t = Table('tbl', m, - Column('a', Integer), - Column('b', Integer) - ) + t = Table("tbl", m, Column("a", Integer), Column("b", Integer)) - t2 = Table('t2', m, - Column('a', Integer), - Column('b', Integer) - ) + t2 = Table("t2", m, Column("a", Integer), Column("b", Integer)) return t, t2 def test_render_ck_constraint_inline(self): t, t2 = self._constraint_create_fixture() - CheckConstraint('a < b', name="my_test_constraint", - deferrable=True, initially='DEFERRED', - table=t) + CheckConstraint( + "a < b", + name="my_test_constraint", + deferrable=True, + initially="DEFERRED", + table=t, + ) # before we create an AddConstraint, # the CONSTRAINT comes out inline @@ -1017,28 +1166,36 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): "b INTEGER, " "CONSTRAINT my_test_constraint CHECK (a < b) " "DEFERRABLE INITIALLY DEFERRED" - ")" + ")", ) def test_render_ck_constraint_external(self): t, t2 = self._constraint_create_fixture() - constraint = CheckConstraint('a < b', name="my_test_constraint", - deferrable=True, initially='DEFERRED', - table=t) + constraint = CheckConstraint( + "a < b", + name="my_test_constraint", + deferrable=True, + initially="DEFERRED", + table=t, + ) self.assert_compile( schema.AddConstraint(constraint), "ALTER TABLE tbl ADD CONSTRAINT my_test_constraint " - "CHECK (a < b) DEFERRABLE INITIALLY DEFERRED" + "CHECK (a < b) DEFERRABLE INITIALLY DEFERRED", ) def test_external_ck_constraint_cancels_internal(self): t, t2 = self._constraint_create_fixture() - constraint = CheckConstraint('a < b', name="my_test_constraint", - deferrable=True, initially='DEFERRED', - table=t) + constraint = CheckConstraint( + "a < b", + name="my_test_constraint", + deferrable=True, + initially="DEFERRED", + table=t, + ) schema.AddConstraint(constraint) @@ -1047,34 +1204,39 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): # is disabled self.assert_compile( schema.CreateTable(t), - "CREATE TABLE tbl (" - "a INTEGER, " - "b INTEGER" - ")" + "CREATE TABLE tbl (" "a INTEGER, " "b INTEGER" ")", ) def test_render_drop_constraint(self): t, t2 = self._constraint_create_fixture() - constraint = CheckConstraint('a < b', name="my_test_constraint", - deferrable=True, initially='DEFERRED', - table=t) + constraint = CheckConstraint( + "a < b", + name="my_test_constraint", + deferrable=True, + initially="DEFERRED", + table=t, + ) self.assert_compile( schema.DropConstraint(constraint), - "ALTER TABLE tbl DROP CONSTRAINT my_test_constraint" + "ALTER TABLE tbl DROP CONSTRAINT my_test_constraint", ) def test_render_drop_constraint_cascade(self): t, t2 = self._constraint_create_fixture() - constraint = CheckConstraint('a < b', name="my_test_constraint", - deferrable=True, initially='DEFERRED', - table=t) + constraint = CheckConstraint( + "a < b", + name="my_test_constraint", + deferrable=True, + initially="DEFERRED", + table=t, + ) self.assert_compile( schema.DropConstraint(constraint, cascade=True), - "ALTER TABLE tbl DROP CONSTRAINT my_test_constraint CASCADE" + "ALTER TABLE tbl DROP CONSTRAINT my_test_constraint CASCADE", ) def test_render_add_fk_constraint_stringcol(self): @@ -1084,7 +1246,7 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): t.append_constraint(constraint) self.assert_compile( schema.AddConstraint(constraint), - "ALTER TABLE tbl ADD FOREIGN KEY(b) REFERENCES t2 (a)" + "ALTER TABLE tbl ADD FOREIGN KEY(b) REFERENCES t2 (a)", ) def test_render_add_fk_constraint_realcol(self): @@ -1094,7 +1256,7 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): t.append_constraint(constraint) self.assert_compile( schema.AddConstraint(constraint), - "ALTER TABLE tbl ADD FOREIGN KEY(a) REFERENCES t2 (b)" + "ALTER TABLE tbl ADD FOREIGN KEY(a) REFERENCES t2 (b)", ) def test_render_add_uq_constraint_stringcol(self): @@ -1104,7 +1266,7 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): t2.append_constraint(constraint) self.assert_compile( schema.AddConstraint(constraint), - "ALTER TABLE t2 ADD CONSTRAINT uq_cst UNIQUE (a, b)" + "ALTER TABLE t2 ADD CONSTRAINT uq_cst UNIQUE (a, b)", ) def test_render_add_uq_constraint_realcol(self): @@ -1113,7 +1275,7 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): constraint = UniqueConstraint(t2.c.a, t2.c.b, name="uq_cs2") self.assert_compile( schema.AddConstraint(constraint), - "ALTER TABLE t2 ADD CONSTRAINT uq_cs2 UNIQUE (a, b)" + "ALTER TABLE t2 ADD CONSTRAINT uq_cs2 UNIQUE (a, b)", ) def test_render_add_pk_constraint(self): @@ -1124,7 +1286,7 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): assert t.c.a.primary_key is True self.assert_compile( schema.AddConstraint(constraint), - "ALTER TABLE tbl ADD PRIMARY KEY (a)" + "ALTER TABLE tbl ADD PRIMARY KEY (a)", ) def test_render_check_constraint_sql_literal(self): @@ -1134,7 +1296,7 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): self.assert_compile( schema.AddConstraint(constraint), - "ALTER TABLE tbl ADD CHECK (a > 5)" + "ALTER TABLE tbl ADD CHECK (a > 5)", ) def test_render_check_constraint_inline_sql_literal(self): @@ -1142,20 +1304,20 @@ class ConstraintCompilationTest(fixtures.TestBase, AssertsCompiledSQL): m = MetaData() t = Table( - 't', m, - Column('a', Integer, CheckConstraint(Column('a', Integer) > 5))) + "t", + m, + Column("a", Integer, CheckConstraint(Column("a", Integer) > 5)), + ) self.assert_compile( - schema.CreateColumn(t.c.a), - "a INTEGER CHECK (a > 5)" + schema.CreateColumn(t.c.a), "a INTEGER CHECK (a > 5)" ) def test_render_index_sql_literal(self): t, t2 = self._constraint_create_fixture() - constraint = Index('name', t.c.a + 5) + constraint = Index("name", t.c.a + 5) self.assert_compile( - schema.CreateIndex(constraint), - "CREATE INDEX name ON tbl (a + 5)" + schema.CreateIndex(constraint), "CREATE INDEX name ON tbl (a + 5)" ) |