我正在關注本教程。test_views.py根據作者的說法,我在運行時遇到了一個錯誤,該錯誤不應該存在TypeError: quote_from_bytes() expected bytes。Myviews和mytest_views就像本書一樣,但是我使用的是django 2.0.6而不是django 1.11,所以我進行了url.py更改,所以也許是問題所在。編輯:乍一看,問題似乎出在mock()函數中。當我使用patch('lists.views.List')了Print(list_)我的觀點給出<MagicMock name='List()' id='79765800'>的,而不是List object (1)/編輯我的lists/urls.py:urlpatterns = [ path('new', views.new_list, name='new_list'), path('<slug:list_id>/', views.view_list, name='view_list'), path('users/<email>/', # I'm not sure about this one but it works in other tests views.my_lists, name='my_lists'),]#instead of:#urlpatterns = [# url(r'^new$', views.new_list, name='new_list'),# url(r'^(\d+)/$', views.view_list, name='view_list'),# url(r'^users/(.+)/$', views.my_lists, name='my_lists'),#]我的lists/views.py:[...]def new_list(request): form = ItemForm(data=request.POST) if form.is_valid(): list_ = List() list_.owner = request.user list_.save() form.save(for_list=list_) Print(list_) return redirect(list_) else: return render(request, 'home.html', {"form": form})我的lists/tests/test_views.py:@patch('lists.views.List')@patch('lists.views.ItemForm')def test_list_owner_is_saved_if_user_is_authenticated(self, mockItemFormClass, mockListClass): user = User.objects.create(email='[email protected]') self.client.force_login(user) self.client.post('/lists/new', data={'text': 'new item'}) mock_list = mockListClass.return_value self.assertEqual(mock_list.owner, user)可以是什么?
添加回答
舉報
0/150
提交
取消