Opened 13 years ago
Last modified 13 years ago
#16246 closed Bug
Small problems with new generic IP address field tests on Postgres 8.4 — at Initial Version
Reported by: | Ramiro Morales | Owned by: | nobody |
---|---|---|---|
Component: | Testing framework | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Tes suite doesn't start to run because it can't create some permission table:
Traceback (most recent call last): File "./runtests.py", line 330, in <module> failures = django_tests(int(options.verbosity), options.interactive, options.failfast, args) File "./runtests.py", line 197, in django_tests failures = test_runner.run_tests(test_labels, extra_tests=extra_tests) File "django/test/simple.py", line 354, in run_tests old_config = self.setup_databases() File "django/test/simple.py", line 291, in setup_databases test_db_name = connection.creation.create_test_db(self.verbosity, autoclobber=not self.interactive) File "django/db/backends/creation.py", line 239, in create_test_db load_initial_data=False) File "django/core/management/__init__.py", line 166, in call_command return klass.execute(*args, **defaults) File "django/core/management/base.py", line 220, in execute output = self.handle(*args, **options) File "django/core/management/base.py", line 351, in handle return self.handle_noargs(**options) File "django/core/management/commands/syncdb.py", line 109, in handle_noargs emit_post_sync_signal(created_models, verbosity, interactive, db) File "django/core/management/sql.py", line 190, in emit_post_sync_signal interactive=interactive, db=db) File "django/dispatch/dispatcher.py", line 172, in send response = receiver(signal=self, sender=sender, **named) File "django/contrib/auth/management/__init__.py", line 56, in create_permissions content_type=ctype File "django/db/models/manager.py", line 138, in create return self.get_query_set().create(**kwargs) File "django/db/models/query.py", line 360, in create obj.save(force_insert=True, using=self.db) File "django/db/models/base.py", line 463, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File "django/db/models/base.py", line 556, in save_base result = manager._insert(values, return_id=update_pk, using=using) File "django/db/models/manager.py", line 198, in _insert return insert_query(self.model, values, **kwargs) File "django/db/models/query.py", line 1456, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File "django/db/models/sql/compiler.py", line 810, in execute_sql cursor = super(SQLInsertCompiler, self).execute_sql(None) File "django/db/models/sql/compiler.py", line 754, in execute_sql cursor.execute(sql, params) File "django/db/backends/postgresql_psycopg2/base.py", line 44, in execute return self.cursor.execute(query, args) django.db.utils.DatabaseError: value too long for type character varying(50)
It's the row corresponding to this test model:
Strange thing is why people using PosgreSQL 9 doesn't see this?
Once that is fixed, then there are six errors:
They are about the GenericIPAddressField
's in that model and the one before it, because they are marked blank=True
and not null=True
. From whai I understand: Being Postgres the only backend that doesn't represent the new generic IP address model field with a char DDL field but with a dedicated native data type it doesn't know how to interpret ''
when it is given with such value to store, at least in 8.4.
Patch that tweaks the described test case problems, renames a clashing test method elsewhere