#21671 closed Bug (fixed)

model_inheritance_same_model_name tests fail in isolation

Reported by: aaugustin Owned by: nobody
Component: Database layer (models, ORM) Version: 1.6
Severity: Normal Keywords:
Cc: anubhav9042@… Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


tests % ./runtests.py model_inheritance_same_model_name --settings=test_sqlite
Creating test database for alias 'default'...
Traceback (most recent call last):
  File "./runtests.py", line 359, in <module>
    options.failfast, args)
  File "./runtests.py", line 200, in django_tests
    test_labels or get_installed(), extra_tests=extra_tests)
  File "/Users/myk/Documents/dev/django/django/test/runner.py", line 145, in run_tests
    old_config = self.setup_databases()
  File "/Users/myk/Documents/dev/django/django/test/runner.py", line 107, in setup_databases
    return setup_databases(self.verbosity, self.interactive, **kwargs)
  File "/Users/myk/Documents/dev/django/django/test/runner.py", line 279, in setup_databases
    verbosity, autoclobber=not interactive)
  File "/Users/myk/Documents/dev/django/django/db/backends/creation.py", line 339, in create_test_db
  File "/Users/myk/Documents/dev/django/django/core/management/__init__.py", line 159, in call_command
    return klass.execute(*args, **defaults)
  File "/Users/myk/Documents/dev/django/django/core/management/base.py", line 284, in execute
  File "/Users/myk/Documents/dev/django/django/core/management/base.py", line 314, in validate
    raise CommandError("One or more models did not validate:\n%s" % error_text)
django.core.management.base.CommandError: One or more models did not validate:
model_inheritance_same_model_name.copy: 'title' has a relation with model <class 'model_inheritance.models.Title'>, which has either not been installed or is abstract.

This problem exists both in master and stable/1.6.x (I didn't check earlier versions).

The tests pass only when they're run in combination with the model_inheritance tests.

tests % ./runtests.py model_inheritance_same_model_name model_inheritance --settings=test_sqlite
Creating test database for alias 'default'...
Creating test database for alias 'other'...
Ran 8 tests in 0.053s

Destroying test database for alias 'default'...
Destroying test database for alias 'other'...

It would be useful to fix this because it can create false positives when using the --bisect or --pair options of the test suite.

Attachments (1)

21671.diff (1.7 KB) - added by claudep 16 months ago.
Skip when model_inheritance is not installed

Download all attachments as: .zip

Change History (6)

comment:1 Changed 17 months ago by timo

  • Triage Stage changed from Unreviewed to Accepted

Changed 16 months ago by claudep

Skip when model_inheritance is not installed

comment:2 Changed 16 months ago by claudep

Would it be acceptable that those tests are skipped when model_inheritance app is not tested/installed (as of attached patch)?

comment:3 Changed 12 months ago by aaugustin

That's a reasonable solution.

We have an API to tell if an application is installed in Django 1.7: https://docs.djangoproject.com/en/dev/ref/applications/#django.apps.apps.is_installed

comment:4 Changed 11 months ago by anubhav9042

  • Cc anubhav9042@… added

comment:5 Changed 11 months ago by timo

  • Resolution set to fixed
  • Status changed from new to closed

Fixed in #22402 (the model_inheritance_same_model_name app was consolidated into model_inheritance).

Note: See TracTickets for help on using tickets.
Back to Top