diff --git a/tests/test_transform.py b/tests/test_transform.py index 1805024..f89ca0e 100644 --- a/tests/test_transform.py +++ b/tests/test_transform.py @@ -4,6 +4,7 @@ import pytest @pytest.mark.parametrize( "params,expected_sql", [ + # Identity transform - nothing changes ( {}, [ @@ -13,6 +14,17 @@ import pytest "ALTER TABLE [dogs_new_suffix] RENAME TO [dogs]", ], ), + # Change column type + ( + {"columns": {"age": int}}, + [ + "CREATE TABLE [dogs_new_suffix] (\n [id] INTEGER PRIMARY KEY,\n [name] TEXT,\n [age] INTEGER\n);", + "INSERT INTO [dogs_new_suffix] ([id], [name], [age]) SELECT [id], [name], [age] FROM [dogs]", + "DROP TABLE [dogs]", + "ALTER TABLE [dogs_new_suffix] RENAME TO [dogs]", + ], + ), + # Rename a column ( {"rename": {"age": "dog_age"}}, [ @@ -22,6 +34,7 @@ import pytest "ALTER TABLE [dogs_new_suffix] RENAME TO [dogs]", ], ), + # Drop a column ( {"drop": ["age"]}, [ @@ -31,6 +44,16 @@ import pytest "ALTER TABLE [dogs_new_suffix] RENAME TO [dogs]", ], ), + # Convert type AND rename column + ( + {"columns": {"age": int}, "rename": {"age": "dog_age"}}, + [ + "CREATE TABLE [dogs_new_suffix] (\n [id] INTEGER PRIMARY KEY,\n [name] TEXT,\n [dog_age] INTEGER\n);", + "INSERT INTO [dogs_new_suffix] ([id], [name], [dog_age]) SELECT [id], [name], [age] FROM [dogs]", + "DROP TABLE [dogs]", + "ALTER TABLE [dogs_new_suffix] RENAME TO [dogs]", + ], + ), ], ) def test_transform_sql(fresh_db, params, expected_sql):