diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2018-11-11 01:58:18 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2018-11-11 01:58:18 +0000 |
| commit | 6b84db83e0c16b294eda9c0724957b32a3feb016 (patch) | |
| tree | 985dedcc7e628792937047e7a5850c44795cc5bc /test/sql | |
| parent | 680835f815c7fb0cdd96113e3780261a71a8a5fc (diff) | |
| parent | be705595846cd2205c72f9d87c025f8dc530cb73 (diff) | |
| download | sqlalchemy-6b84db83e0c16b294eda9c0724957b32a3feb016.tar.gz | |
Merge "Add new "all columns" naming convention tokens"
Diffstat (limited to 'test/sql')
| -rw-r--r-- | test/sql/test_metadata.py | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py index 4976e2fb1..d0fa04d78 100644 --- a/test/sql/test_metadata.py +++ b/test/sql/test_metadata.py @@ -4163,6 +4163,8 @@ class NamingConventionTest(fixtures.TestBase, AssertsCompiledSQL): Column('id', Integer, primary_key=True), Column('version', Integer, primary_key=True), Column('data', String(30)), + Column('Data2', String(30), key="data2"), + Column('Data3', String(30), key="data3"), schema=table_schema ) @@ -4175,6 +4177,191 @@ class NamingConventionTest(fixtures.TestBase, AssertsCompiledSQL): uq = UniqueConstraint(u1.c.data) eq_(uq.name, "uq_user_data") + def test_uq_conv_name(self): + u1 = self._fixture(naming_convention={ + "uq": "uq_%(table_name)s_%(column_0_name)s" + }) + uq = UniqueConstraint(u1.c.data, name=naming.conv("myname")) + self.assert_compile( + schema.AddConstraint(uq), + 'ALTER TABLE "user" ADD CONSTRAINT myname UNIQUE (data)', + dialect="default" + ) + + def test_uq_defer_name_no_convention(self): + u1 = self._fixture(naming_convention={}) + uq = UniqueConstraint(u1.c.data, name=naming._defer_name("myname")) + self.assert_compile( + schema.AddConstraint(uq), + 'ALTER TABLE "user" ADD CONSTRAINT myname UNIQUE (data)', + dialect="default" + ) + + def test_uq_defer_name_convention(self): + u1 = self._fixture(naming_convention={ + "uq": "uq_%(table_name)s_%(column_0_name)s" + }) + uq = UniqueConstraint(u1.c.data, name=naming._defer_name("myname")) + self.assert_compile( + schema.AddConstraint(uq), + 'ALTER TABLE "user" ADD CONSTRAINT uq_user_data UNIQUE (data)', + dialect="default" + ) + + def test_uq_key(self): + u1 = self._fixture(naming_convention={ + "uq": "uq_%(table_name)s_%(column_0_key)s" + }) + uq = UniqueConstraint(u1.c.data, u1.c.data2) + eq_(uq.name, "uq_user_data") + + def test_uq_label(self): + u1 = self._fixture(naming_convention={ + "uq": "uq_%(table_name)s_%(column_0_label)s" + }) + uq = UniqueConstraint(u1.c.data, u1.c.data2) + eq_(uq.name, "uq_user_user_data") + + def test_uq_allcols_underscore_name(self): + u1 = self._fixture(naming_convention={ + "uq": "uq_%(table_name)s_%(column_0_N_name)s" + }) + uq = UniqueConstraint(u1.c.data, u1.c.data2, u1.c.data3) + eq_(uq.name, "uq_user_data_Data2_Data3") + + def test_uq_allcols_merged_name(self): + u1 = self._fixture(naming_convention={ + "uq": "uq_%(table_name)s_%(column_0N_name)s" + }) + uq = UniqueConstraint(u1.c.data, u1.c.data2, u1.c.data3) + eq_(uq.name, "uq_user_dataData2Data3") + + def test_uq_allcols_merged_key(self): + u1 = self._fixture(naming_convention={ + "uq": "uq_%(table_name)s_%(column_0N_key)s" + }) + uq = UniqueConstraint(u1.c.data, u1.c.data2, u1.c.data3) + eq_(uq.name, "uq_user_datadata2data3") + + def test_uq_allcols_truncated_name(self): + u1 = self._fixture(naming_convention={ + "uq": "uq_%(table_name)s_%(column_0N_name)s" + }) + uq = UniqueConstraint(u1.c.data, u1.c.data2, u1.c.data3) + + dialect = default.DefaultDialect() + self.assert_compile( + schema.AddConstraint(uq), + 'ALTER TABLE "user" ADD ' + 'CONSTRAINT "uq_user_dataData2Data3" ' + 'UNIQUE (data, "Data2", "Data3")', + dialect=dialect + ) + + dialect.max_identifier_length = 15 + self.assert_compile( + schema.AddConstraint(uq), + 'ALTER TABLE "user" ADD ' + 'CONSTRAINT uq_user_2769 UNIQUE (data, "Data2", "Data3")', + dialect=dialect + ) + + def test_fk_allcols_underscore_name(self): + u1 = self._fixture(naming_convention={ + "fk": "fk_%(table_name)s_%(column_0_N_name)s_" + "%(referred_table_name)s_%(referred_column_0_N_name)s"}) + + m1 = u1.metadata + a1 = Table('address', m1, + Column('id', Integer, primary_key=True), + Column('UserData', String(30), key="user_data"), + Column('UserData2', String(30), key="user_data2"), + Column('UserData3', String(30), key="user_data3") + ) + fk = ForeignKeyConstraint(['user_data', 'user_data2', 'user_data3'], + ['user.data', 'user.data2', 'user.data3']) + a1.append_constraint(fk) + self.assert_compile( + schema.AddConstraint(fk), + 'ALTER TABLE address ADD CONSTRAINT ' + '"fk_address_UserData_UserData2_UserData3_user_data_Data2_Data3" ' + 'FOREIGN KEY("UserData", "UserData2", "UserData3") ' + 'REFERENCES "user" (data, "Data2", "Data3")', + dialect=default.DefaultDialect() + ) + + def test_fk_allcols_merged_name(self): + u1 = self._fixture(naming_convention={ + "fk": "fk_%(table_name)s_%(column_0N_name)s_" + "%(referred_table_name)s_%(referred_column_0N_name)s"}) + + m1 = u1.metadata + a1 = Table('address', m1, + Column('id', Integer, primary_key=True), + Column('UserData', String(30), key="user_data"), + Column('UserData2', String(30), key="user_data2"), + Column('UserData3', String(30), key="user_data3") + ) + fk = ForeignKeyConstraint(['user_data', 'user_data2', 'user_data3'], + ['user.data', 'user.data2', 'user.data3']) + a1.append_constraint(fk) + self.assert_compile( + schema.AddConstraint(fk), + 'ALTER TABLE address ADD CONSTRAINT ' + '"fk_address_UserDataUserData2UserData3_user_dataData2Data3" ' + 'FOREIGN KEY("UserData", "UserData2", "UserData3") ' + 'REFERENCES "user" (data, "Data2", "Data3")', + dialect=default.DefaultDialect() + ) + + def test_fk_allcols_truncated_name(self): + u1 = self._fixture(naming_convention={ + "fk": "fk_%(table_name)s_%(column_0N_name)s_" + "%(referred_table_name)s_%(referred_column_0N_name)s"}) + + m1 = u1.metadata + a1 = Table('address', m1, + Column('id', Integer, primary_key=True), + Column('UserData', String(30), key="user_data"), + Column('UserData2', String(30), key="user_data2"), + Column('UserData3', String(30), key="user_data3") + ) + fk = ForeignKeyConstraint(['user_data', 'user_data2', 'user_data3'], + ['user.data', 'user.data2', 'user.data3']) + a1.append_constraint(fk) + + dialect = default.DefaultDialect() + dialect.max_identifier_length = 15 + self.assert_compile( + schema.AddConstraint(fk), + 'ALTER TABLE address ADD CONSTRAINT ' + 'fk_addr_f9ff ' + 'FOREIGN KEY("UserData", "UserData2", "UserData3") ' + 'REFERENCES "user" (data, "Data2", "Data3")', + dialect=dialect + ) + + def test_ix_allcols_truncation(self): + u1 = self._fixture(naming_convention={ + "ix": "ix_%(table_name)s_%(column_0N_name)s" + }) + ix = Index(None, u1.c.data, u1.c.data2, u1.c.data3) + dialect = default.DefaultDialect() + dialect.max_identifier_length = 15 + self.assert_compile( + schema.CreateIndex(ix), + 'CREATE INDEX ix_user_2de9 ON ' + '"user" (data, "Data2", "Data3")', + dialect=dialect + ) + + def test_ix_name(self): + u1 = self._fixture(naming_convention={ + "ix": "ix_%(table_name)s_%(column_0_name)s" + }) + ix = Index(None, u1.c.data) + eq_(ix.name, "ix_user_data") + def test_ck_name_required(self): u1 = self._fixture(naming_convention={ "ck": "ck_%(table_name)s_%(constraint_name)s" |
