Я работаю за пределами магистрали Django и замечаю, что модульные тесты для модулей Django в магистрали всегда имеют сбои. Должен ли ствол Django проходить все свои юнит-тесты?
Вот некоторые примеры ошибок:
======================================================================
ERROR: test_password_change_fails_with_invalid_old_password (django.contrib.auth.tests.views.ChangePasswordTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/michael/django/trunk/django/contrib/auth/tests/views.py", line 156, in test_password_change_fails_with_invalid_old_password
'new_password2': 'password1',
File "/Users/michael/django/trunk/django/test/client.py", line 318, in post
response = self.request(**r)
File "/Users/michael/django/trunk/django/core/handlers/base.py", line 87, in get_response
response = middleware_method(request, callback, callback_args, callback_kwargs)
File "/Users/michael/Documents/workspace/drchrono/drchrono_middleware/drchrono.py", line 31, in process_view
setattr(request, 'currentDoctor', request.user.get_profile().doctor) #Default is to have currentDoctor be default for logged in user.
File "/Users/michael/django/trunk/django/contrib/auth/models.py", line 285, in get_profile
self._profile_cache = model._default_manager.get(user__id__exact=self.id)
File "/Users/michael/django/trunk/django/db/models/manager.py", line 119, in get
return self.get_query_set().get(*args, **kwargs)
File "/Users/michael/django/trunk/django/db/models/query.py", line 298, in get
% self.model._meta.object_name)
DoesNotExist: UserProfile matching query does not exist.
Я только что понял, что во многих ошибках упоминается отсутствующий UserProfile и что у меня есть пользовательский объект UserProfile, который я создаю при создании нового пользователя через процесс веб-регистрации (но он не создается при создании экземпляра нового объекта User в администраторе, или я приду через код.) Так что, возможно, это ошибка моего приложения в том, что я не создал UserProfiles для пользователей, не созданных через графический интерфейс. Как я могу создать UserProfile для каждого созданного объекта User? Вы monkeypatch метод new () класса User?