Eric Schoonover
Eric Schoonover

Reputation: 48402

Django Framework Test Failing

I am using django-nonrel. When I run manage.py test over my project which contains only one very simple user defined test I get the following error in the output. Has anyone seen this before? What do I need to do to resolve the issue so that the test_shortcut_view (django.contrib.contenttypes.tests.ContentTypesTests) succeeds?

/src/google_appengine/google/appengine/datastore/datastore_stub_util.py:21: DeprecationWarning: the md5 module is deprecated; use hashlib instead
    import md5
/src/google_appengine/google/appengine/api/memcache/__init__.py:31: DeprecationWarning: the sha module is deprecated; use the hashlib module instead
    import sha
/src/google_appengine/google/appengine/api/datastore_types.py:727: DeprecationWarning: object.__init__() takes no parameters
    super(Email, self).__init__(self, email)
............................................s.................F.....................................................................................................
======================================================================
FAIL: test_shortcut_view (django.contrib.contenttypes.tests.ContentTypesTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/src/django/contrib/contenttypes/tests.py", line 66, in test_shortcut_view
self.assertEqual("http://example.com/users/john/", response._headers.get("location")[1])
AssertionError: 'http://example.com/users/john/' != '/users/john/'

----------------------------------------------------------------------
Ran 164 tests in 9.185s

FAILED (failures=1, skipped=1)

Upvotes: 0

Views: 421

Answers (2)

user117365
user117365

Reputation:

The failure is caused by the unit tests which come with the default django setup.

They expect you to have configured a default site using the admin interface:

e.g. http://localhost:8000/admin/sites/ and to have SITE_ID = 1

Check that site id is referencing a valid entry

http://localhost:8000/admin/sites/site/1/ where 1 is your site id.

--

Using the sites app is optional, you can remove: 'django.contrib.sites', from your apps list.

Upvotes: 0

Stephan
Stephan

Reputation: 3799

Well the answer is in your trace back:

self.assertEqual("http://example.com/users/john/", response._headers.get("location")[1])
AssertionError: 'http://example.com/users/john/' != '/users/john/'

change the fist line in :

self.assertEqual("/users/john/", response._headers.get("location")[1])

that should fix the test. But if its test code you did not write than I think the problem is in the example.com/ part. The example.com probably comes from your site settings. There is a model called sites if you change it to the correct url this might work.

also

You could try useing diferent django versions. trunk vs stable version behave differently during testing.

Upvotes: 1

Related Questions