Django框架测试失败

时间:2010-11-04 21:19:37

标签: python django django-nonrel unit-testing

我正在使用django-nonrel。当我在我的项目上运行manage.py test时,它只包含一个非常简单的用户定义测试,我在输出中得到以下错误。谁看过这个吗?我需要做些什么来解决问题,以便test_shortcut_view (django.contrib.contenttypes.tests.ContentTypesTests)成功?

/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)

2 个答案:

答案 0 :(得分:1)

答案就在你的追溯中:

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

更改第一行:

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

应该修复测试。但是,如果你的测试代码没有写,我认为问题出在example.com/部分。 example.com可能来自您的网站设置。如果您将其更改为可能有效的正确URL,则会有一个名为sites的模型。

您可以尝试使用不同的django版本。 trunk vs stable版本在测试期间表现不同。

答案 1 :(得分:0)

失败是由默认django设置附带的单元测试引起的。

他们希望您使用管理界面配置默认站点:

e.g。 http://localhost:8000/admin/sites/ 并拥有 SITE_ID = 1

检查网站ID是否引用了有效条目

http://localhost:8000/admin/sites/site/1/其中1是您的网站ID。

-

使用网站应用是可选的,您可以删除:     'django.contrib.sites', 来自您的应用列表。