diff options
| author | Simon Charette <charette.s@gmail.com> | 2016-05-24 15:29:11 -0400 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2017-06-21 00:26:30 -0400 |
| commit | b50815ee418b38e719476c2d5f6e2bc69f686927 (patch) | |
| tree | 0778cf9501e342e2a8a8a7cf3967839617e773d7 /tests/backends | |
| parent | 3b429c96736b8328c40e5d77282b0d30de563c3c (diff) | |
Refs #25530 -- Renamed deferred SQL references on rename operation.
Diffstat (limited to 'tests/backends')
| -rw-r--r-- | tests/backends/test_ddl_references.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/backends/test_ddl_references.py b/tests/backends/test_ddl_references.py index 268eed988b..dc5b8750a0 100644 --- a/tests/backends/test_ddl_references.py +++ b/tests/backends/test_ddl_references.py @@ -12,6 +12,14 @@ class TableTests(SimpleTestCase): self.assertIs(self.reference.references_table('table'), True) self.assertIs(self.reference.references_table('other'), False) + def test_rename_table_references(self): + self.reference.rename_table_references('other', 'table') + self.assertIs(self.reference.references_table('table'), True) + self.assertIs(self.reference.references_table('other'), False) + self.reference.rename_table_references('table', 'other') + self.assertIs(self.reference.references_table('table'), False) + self.assertIs(self.reference.references_table('other'), True) + def test_repr(self): self.assertEqual(repr(self.reference), "<Table 'TABLE'>") @@ -30,6 +38,18 @@ class ColumnsTests(TableTests): self.assertIs(self.reference.references_column('table', 'third_column'), False) self.assertIs(self.reference.references_column('table', 'first_column'), True) + def test_rename_column_references(self): + self.reference.rename_column_references('other', 'first_column', 'third_column') + self.assertIs(self.reference.references_column('table', 'first_column'), True) + self.assertIs(self.reference.references_column('table', 'third_column'), False) + self.assertIs(self.reference.references_column('other', 'third_column'), False) + self.reference.rename_column_references('table', 'third_column', 'first_column') + self.assertIs(self.reference.references_column('table', 'first_column'), True) + self.assertIs(self.reference.references_column('table', 'third_column'), False) + self.reference.rename_column_references('table', 'first_column', 'third_column') + self.assertIs(self.reference.references_column('table', 'first_column'), False) + self.assertIs(self.reference.references_column('table', 'third_column'), True) + def test_repr(self): self.assertEqual(repr(self.reference), "<Columns 'FIRST_COLUMN, SECOND_COLUMN'>") @@ -72,6 +92,21 @@ class ForeignKeyNameTests(IndexNameTests): self.assertIs(self.reference.references_column('to_table', 'second_column'), False) self.assertIs(self.reference.references_column('to_table', 'to_second_column'), True) + def test_rename_table_references(self): + super().test_rename_table_references() + self.reference.rename_table_references('to_table', 'other_to_table') + self.assertIs(self.reference.references_table('other_to_table'), True) + self.assertIs(self.reference.references_table('to_table'), False) + + def test_rename_column_references(self): + super().test_rename_column_references() + self.reference.rename_column_references('to_table', 'second_column', 'third_column') + self.assertIs(self.reference.references_column('table', 'second_column'), True) + self.assertIs(self.reference.references_column('to_table', 'to_second_column'), True) + self.reference.rename_column_references('to_table', 'to_first_column', 'to_third_column') + self.assertIs(self.reference.references_column('to_table', 'to_first_column'), False) + self.assertIs(self.reference.references_column('to_table', 'to_third_column'), True) + def test_repr(self): self.assertEqual( repr(self.reference), @@ -99,6 +134,17 @@ class MockReference(object): def references_column(self, table, column): return (table, column) in self.referenced_columns + def rename_table_references(self, old_table, new_table): + if old_table in self.referenced_tables: + self.referenced_tables.remove(old_table) + self.referenced_tables.add(new_table) + + def rename_column_references(self, table, old_column, new_column): + column = (table, old_column) + if column in self.referenced_columns: + self.referenced_columns.remove(column) + self.referenced_columns.add((table, new_column)) + def __str__(self): return self.representation @@ -114,6 +160,18 @@ class StatementTests(SimpleTestCase): self.assertIs(statement.references_column('table', 'column'), True) self.assertIs(statement.references_column('other', 'column'), False) + def test_rename_table_references(self): + reference = MockReference('', {'table'}, {}) + statement = Statement('', reference=reference, non_reference='') + statement.rename_table_references('table', 'other') + self.assertEqual(reference.referenced_tables, {'other'}) + + def test_rename_column_references(self): + reference = MockReference('', {}, {('table', 'column')}) + statement = Statement('', reference=reference, non_reference='') + statement.rename_column_references('table', 'column', 'other') + self.assertEqual(reference.referenced_columns, {('table', 'other')}) + def test_repr(self): reference = MockReference('reference', {}, {}) statement = Statement("%(reference)s - %(non_reference)s", reference=reference, non_reference='non_reference') |
