#33256: Some schema tests don't clean up their tables
-------------------------------------+-------------------------------------
               Reporter:  Tim        |          Owner:  nobody
  Graham                             |
                   Type:             |         Status:  new
  Cleanup/optimization               |
              Component:  Database   |        Version:  dev
  layer (models, ORM)                |
               Severity:  Normal     |       Keywords:
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  1
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 Some test errors on a second consecutive run of `./tests/runtests.py
 --settings=test_postgres  --parallel=1 --keepdb schema` shows that some
 tests leave behind their tables. Attached is an initial patch for a couple
 of the cases.
 {{{
 ======================================================================
 ERROR: test_add_foreign_key_quoted_db_table (schema.tests.SchemaTests)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 psycopg2.errors.DuplicateTable: relation "table_author_double_quoted"
 already exists


 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/home/tim/code/django/django/test/utils.py", line 437, in inner
     return func(*args, **kwargs)
   File "/home/tim/code/django/django/test/testcases.py", line 1305, in
 skip_wrapper
     return test_func(*args, **kwargs)
   File "/home/tim/code/django/tests/schema/tests.py", line 3229, in
 test_add_foreign_key_quoted_db_table
     editor.create_model(Author)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 355, in create_model
     self.execute(sql, params or None)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 151, in execute
     cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/backends/utils.py", line 66, in
 execute
     return self._execute_with_wrappers(sql, params, many=False,
 executor=self._execute)
   File "/home/tim/code/django/django/db/backends/utils.py", line 75, in
 _execute_with_wrappers
     return executor(sql, params, many, context)
   File "/home/tim/code/django/django/db/backends/utils.py", line 84, in
 _execute
     return self.cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/utils.py", line 90, in __exit__
     raise dj_exc_value.with_traceback(traceback) from exc_value
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 django.db.utils.ProgrammingError: relation "table_author_double_quoted"
 already exists


 ======================================================================
 ERROR: test_add_foreign_object (schema.tests.SchemaTests)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 psycopg2.errors.DuplicateTable: relation "schema_bookforeignobj" already
 exists


 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/home/tim/code/django/tests/schema/tests.py", line 3238, in
 test_add_foreign_object
     editor.create_model(BookForeignObj)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 355, in create_model
     self.execute(sql, params or None)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 151, in execute
     cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/backends/utils.py", line 66, in
 execute
     return self._execute_with_wrappers(sql, params, many=False,
 executor=self._execute)
   File "/home/tim/code/django/django/db/backends/utils.py", line 75, in
 _execute_with_wrappers
     return executor(sql, params, many, context)
   File "/home/tim/code/django/django/db/backends/utils.py", line 84, in
 _execute
     return self.cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/utils.py", line 90, in __exit__
     raise dj_exc_value.with_traceback(traceback) from exc_value
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 django.db.utils.ProgrammingError: relation "schema_bookforeignobj" already
 exists


 ======================================================================
 ERROR: test_remove_db_index_doesnt_remove_custom_indexes
 (schema.tests.SchemaTests)
 Changing db_index to False doesn't remove indexes from Meta.indexes.
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 psycopg2.errors.DuplicateTable: relation "schema_authorwithindexedname"
 already exists


 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/home/tim/code/django/tests/schema/tests.py", line 2659, in
 test_remove_db_index_doesnt_remove_custom_indexes
     editor.create_model(AuthorWithIndexedName)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 355, in create_model
     self.execute(sql, params or None)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 151, in execute
     cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/backends/utils.py", line 66, in
 execute
     return self._execute_with_wrappers(sql, params, many=False,
 executor=self._execute)
   File "/home/tim/code/django/django/db/backends/utils.py", line 75, in
 _execute_with_wrappers
     return executor(sql, params, many, context)
   File "/home/tim/code/django/django/db/backends/utils.py", line 84, in
 _execute
     return self.cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/utils.py", line 90, in __exit__
     raise dj_exc_value.with_traceback(traceback) from exc_value
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 django.db.utils.ProgrammingError: relation "schema_authorwithindexedname"
 already exists


 ======================================================================
 ERROR: test_remove_field_unique_does_not_remove_meta_constraints
 (schema.tests.SchemaTests)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 psycopg2.errors.DuplicateTable: relation "schema_authorwithuniquename"
 already exists


 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/home/tim/code/django/django/test/testcases.py", line 1305, in
 skip_wrapper
     return test_func(*args, **kwargs)
   File "/home/tim/code/django/tests/schema/tests.py", line 2057, in
 test_remove_field_unique_does_not_remove_meta_constraints
     editor.create_model(AuthorWithUniqueName)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 355, in create_model
     self.execute(sql, params or None)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 151, in execute
     cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/backends/utils.py", line 66, in
 execute
     return self._execute_with_wrappers(sql, params, many=False,
 executor=self._execute)
   File "/home/tim/code/django/django/db/backends/utils.py", line 75, in
 _execute_with_wrappers
     return executor(sql, params, many, context)
   File "/home/tim/code/django/django/db/backends/utils.py", line 84, in
 _execute
     return self.cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/utils.py", line 90, in __exit__
     raise dj_exc_value.with_traceback(traceback) from exc_value
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 django.db.utils.ProgrammingError: relation "schema_authorwithuniquename"
 already exists


 ======================================================================
 ERROR: test_remove_index_together_does_not_remove_meta_indexes
 (schema.tests.SchemaTests)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 psycopg2.errors.DuplicateTable: relation
 "schema_authorwithindexednameandbirthday" already exists


 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/home/tim/code/django/django/test/testcases.py", line 1305, in
 skip_wrapper
     return test_func(*args, **kwargs)
   File "/home/tim/code/django/tests/schema/tests.py", line 2554, in
 test_remove_index_together_does_not_remove_meta_indexes
     editor.create_model(AuthorWithIndexedNameAndBirthday)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 355, in create_model
     self.execute(sql, params or None)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 151, in execute
     cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/backends/utils.py", line 66, in
 execute
     return self._execute_with_wrappers(sql, params, many=False,
 executor=self._execute)
   File "/home/tim/code/django/django/db/backends/utils.py", line 75, in
 _execute_with_wrappers
     return executor(sql, params, many, context)
   File "/home/tim/code/django/django/db/backends/utils.py", line 84, in
 _execute
     return self.cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/utils.py", line 90, in __exit__
     raise dj_exc_value.with_traceback(traceback) from exc_value
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 django.db.utils.ProgrammingError: relation
 "schema_authorwithindexednameandbirthday" already exists


 ======================================================================
 ERROR: test_remove_unique_together_does_not_remove_meta_constraints
 (schema.tests.SchemaTests)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 psycopg2.errors.DuplicateTable: relation
 "schema_authorwithuniquenameandbirthday" already exists


 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/home/tim/code/django/django/test/testcases.py", line 1305, in
 skip_wrapper
     return test_func(*args, **kwargs)
   File "/home/tim/code/django/tests/schema/tests.py", line 2176, in
 test_remove_unique_together_does_not_remove_meta_constraints
     editor.create_model(AuthorWithUniqueNameAndBirthday)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 355, in create_model
     self.execute(sql, params or None)
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 151, in execute
     cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/backends/utils.py", line 66, in
 execute
     return self._execute_with_wrappers(sql, params, many=False,
 executor=self._execute)
   File "/home/tim/code/django/django/db/backends/utils.py", line 75, in
 _execute_with_wrappers
     return executor(sql, params, many, context)
   File "/home/tim/code/django/django/db/backends/utils.py", line 84, in
 _execute
     return self.cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/utils.py", line 90, in __exit__
     raise dj_exc_value.with_traceback(traceback) from exc_value
   File "/home/tim/code/django/django/db/backends/utils.py", line 82, in
 _execute
     return self.cursor.execute(sql)
 django.db.utils.ProgrammingError: relation
 "schema_authorwithuniquenameandbirthday" already exists


 ======================================================================
 ERROR: test_unique_name_quoting (schema.tests.SchemaTests)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/home/tim/code/django/django/db/backends/utils.py", line 84, in
 _execute
     return self.cursor.execute(sql, params)
 psycopg2.errors.DuplicateTable: relation "unique-table" already exists


 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/home/tim/code/django/tests/schema/tests.py", line 1978, in
 test_unique_name_quoting
     editor.alter_db_table(TagUniqueRename, old_table_name, 'unique-table')
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 474, in alter_db_table
     self.execute(self.sql_rename_table % {
   File "/home/tim/code/django/django/db/backends/base/schema.py", line
 151, in execute
     cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/backends/utils.py", line 66, in
 execute
     return self._execute_with_wrappers(sql, params, many=False,
 executor=self._execute)
   File "/home/tim/code/django/django/db/backends/utils.py", line 75, in
 _execute_with_wrappers
     return executor(sql, params, many, context)
   File "/home/tim/code/django/django/db/backends/utils.py", line 84, in
 _execute
     return self.cursor.execute(sql, params)
   File "/home/tim/code/django/django/db/utils.py", line 90, in __exit__
     raise dj_exc_value.with_traceback(traceback) from exc_value
   File "/home/tim/code/django/django/db/backends/utils.py", line 84, in
 _execute
     return self.cursor.execute(sql, params)
 django.db.utils.ProgrammingError: relation "unique-table" already exists
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/33256>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/052.10039e3a5c8a52eb60fea5e49bb1fe7e%40djangoproject.com.

Reply via email to