diff --git a/tests/schema/tests.py b/tests/schema/tests.py index 959f886024..f6125ee9f3 100644 --- a/tests/schema/tests.py +++ b/tests/schema/tests.py @@ -643,3 +643,16 @@ class SchemaTests(TransactionTestCase): self.assertTrue( connection.introspection.get_indexes(connection.cursor(), Tag._meta.db_table)['slug']['primary_key'], ) + + def test_context_manager_exit(self): + """ + Ensures transaction is correctly closed when an error occurs + inside a SchemaEditor context. + """ + class SomeError(Exception): + pass + try: + with connection.schema_editor() as editor: + raise SomeError + except SomeError: + self.assertFalse(connection.in_atomic_block)