【发布时间】:2009-10-28 14:22:16
【问题描述】:
我在 Django 主干上工作,并注意到主干中 Django 模块的单元测试总是失败。 Django 主干是否应该通过它自己的所有单元测试?
以下是一些示例错误:
==================================================== ===================== 错误:test_password_change_fails_with_invalid_old_password (django.contrib.auth.tests.views.ChangePasswordTest) -------------------------------------------------- -------------------- 回溯(最近一次通话最后): 文件“/Users/michael/django/trunk/django/contrib/auth/tests/views.py”,第 156 行,在 test_password_change_fails_with_invalid_old_password 'new_password2': 'password1', 文件“/Users/michael/django/trunk/django/test/client.py”,第 318 行,在帖子中 响应 = self.request(**r) 文件“/Users/michael/django/trunk/django/core/handlers/base.py”,第 87 行,在 get_response response = middleware_method(request, callback, callback_args, callback_kwargs) 文件“/Users/michael/Documents/workspace/drchrono/drchrono_middleware/drchrono.py”,第 31 行,在 process_view setattr(request, 'currentDoctor', request.user.get_profile().doctor) #默认是让 currentDoctor 成为登录用户的默认值。 文件“/Users/michael/django/trunk/django/contrib/auth/models.py”,第 285 行,在 get_profile self._profile_cache = model._default_manager.get(user__id__exact=self.id) 文件“/Users/michael/django/trunk/django/db/models/manager.py”,第 119 行,在 get 返回 self.get_query_set().get(*args, **kwargs) 文件“/Users/michael/django/trunk/django/db/models/query.py”,第 298 行,在 get % self.model._meta.object_name) DoesNotExist:UserProfile 匹配查询不存在。我刚刚意识到很多错误都提到了缺少的 UserProfile 并且我有一个自定义 UserProfile 对象,我在通过 Web 注册过程创建新用户时创建了该对象(但在实例化新用户对象时不会创建该对象在管理员中,否则我将通过代码进行假设。)所以也许这是我的应用程序的错误,因为没有为不是通过 GUI 创建的用户创建用户配置文件。如何为创建的每个用户对象创建一个用户配置文件?你会猴子补丁 User 类的 new() 方法吗?
【问题讨论】:
标签: django