Skip to content

Commit 86521dc

Browse files
committed
added a test for setting a Varchar column's length via a MigrationManager
1 parent 77c0fa1 commit 86521dc

File tree

3 files changed

+45
-4
lines changed

3 files changed

+45
-4
lines changed

tests/apps/migrations/auto/test_migration_manager.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,11 +516,44 @@ def test_alter_column_set_type(self):
516516

517517
asyncio.run(manager.run())
518518

519-
column_type_str = self.get_postgres_column_type_str(
519+
column_type_str = self.get_postgres_column_type(
520520
tablename="manager", column_name="name"
521521
)
522522
self.assertEqual(column_type_str, "TEXT")
523523

524+
@postgres_only
525+
def test_alter_column_set_length(self):
526+
"""
527+
Test altering a Varchar column's length with MigrationManager.
528+
"""
529+
manager = MigrationManager()
530+
531+
manager.alter_column(
532+
table_class_name="Manager",
533+
tablename="manager",
534+
column_name="name",
535+
params={"length": 500},
536+
old_params={"length": 200},
537+
column_class=Text,
538+
old_column_class=Varchar,
539+
)
540+
541+
asyncio.run(manager.run())
542+
self.assertEqual(
543+
self.get_postgres_varchar_length(
544+
tablename="manager", column_name="name"
545+
),
546+
500,
547+
)
548+
549+
asyncio.run(manager.run_backwards())
550+
self.assertEqual(
551+
self.get_postgres_varchar_length(
552+
tablename="manager", column_name="name"
553+
),
554+
200,
555+
)
556+
524557
@postgres_only
525558
@patch.object(BaseMigrationManager, "get_migration_managers")
526559
def test_drop_table(self, get_migration_managers: MagicMock):

tests/base.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def get_postgres_column_definition(
7373
response = self.run_sync(query)
7474
return response[0]
7575

76-
def get_postgres_column_type_str(
76+
def get_postgres_column_type(
7777
self, tablename: str, column_name: str
7878
) -> str:
7979
"""
@@ -94,6 +94,14 @@ def get_postgres_is_nullable(self, tablename, column_name: str) -> bool:
9494
== "YES"
9595
)
9696

97+
def get_postgres_varchar_length(self, tablename, column_name: str) -> int:
98+
"""
99+
Fetches whether the column is defined as nullable, from the database.
100+
"""
101+
return self.get_postgres_column_definition(
102+
tablename=tablename, column_name=column_name
103+
)["character_maximum_length"]
104+
97105
###########################################################################
98106

99107
def create_tables(self):

tests/table/test_alter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ def test_integer_to_bigint(self):
152152
alter_query.run_sync()
153153

154154
self.assertEqual(
155-
self.get_postgres_column_type_str(
155+
self.get_postgres_column_type(
156156
tablename="band", column_name="popularity"
157157
),
158158
"BIGINT",
@@ -175,7 +175,7 @@ def test_integer_to_varchar(self):
175175
alter_query.run_sync()
176176

177177
self.assertEqual(
178-
self.get_postgres_column_type_str(
178+
self.get_postgres_column_type(
179179
tablename="band", column_name="popularity"
180180
),
181181
"CHARACTER VARYING",

0 commit comments

Comments
 (0)