#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.