summaryrefslogtreecommitdiff
path: root/tests/schema
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2022-11-04 09:30:23 +0100
committerGitHub <noreply@github.com>2022-11-04 09:30:23 +0100
commit7b0e9ea53ca99de2f485ec582f3a79be34b531d4 (patch)
tree06b78217b7f974b5179d6c145955a869a0a875b9 /tests/schema
parent0f4964535cb81c12303dd103c4bdba4891c99c2c (diff)
downloaddjango-7b0e9ea53ca99de2f485ec582f3a79be34b531d4.tar.gz
Fixed #34138 -- Avoided table rebuild when adding inline m2m fields on SQLite.
Regression in 2f73e5406d54cb8945e187eff302a3a3373350be. Thanks David Wobrock for the report.
Diffstat (limited to 'tests/schema')
-rw-r--r--tests/schema/tests.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/schema/tests.py b/tests/schema/tests.py
index a2b72cd42a..fee5ca9d2b 100644
--- a/tests/schema/tests.py
+++ b/tests/schema/tests.py
@@ -2200,8 +2200,25 @@ class SchemaTests(TransactionTestCase):
with self.assertRaises(DatabaseError):
self.column_classes(new_field.remote_field.through)
# Add the field
- with connection.schema_editor() as editor:
+ with CaptureQueriesContext(
+ connection
+ ) as ctx, connection.schema_editor() as editor:
editor.add_field(LocalAuthorWithM2M, new_field)
+ # Table is not rebuilt.
+ self.assertEqual(
+ len(
+ [
+ query["sql"]
+ for query in ctx.captured_queries
+ if "CREATE TABLE" in query["sql"]
+ ]
+ ),
+ 1,
+ )
+ self.assertIs(
+ any("DROP TABLE" in query["sql"] for query in ctx.captured_queries),
+ False,
+ )
# Ensure there is now an m2m table there
columns = self.column_classes(new_field.remote_field.through)
self.assertEqual(