Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django测试中MultipleChiceField的单元测试总是失败_Python_Django_Unit Testing - Fatal编程技术网

Python django测试中MultipleChiceField的单元测试总是失败

Python django测试中MultipleChiceField的单元测试总是失败,python,django,unit-testing,Python,Django,Unit Testing,我正在尝试对一个具有多回音字段的表单的post请求数据的视图执行单元测试,但总是失败,下面是我的代码: 表单中的from.py class AddUserForm(forms.Form): 选项=( ("إدارة عامة", "إدارة عامة"), ("إدارة المستخدمين", "إدارة المستخدمين"), ) username=forms.CharField(widget=forms.TextInput(attrs={ “类”:“窗体控件”, “占位符”:“占

我正在尝试对一个具有
多回音字段的表单的post请求数据的视图执行
单元测试,但总是失败,下面是我的代码:

表单中的from.py

class AddUserForm(forms.Form):
选项=(
("إدارة عامة", "إدارة عامة"),
("إدارة المستخدمين", "إدارة المستخدمين"),
)
username=forms.CharField(widget=forms.TextInput(attrs={
“类”:“窗体控件”,
“占位符”:“占位符”
}))
password=forms.CharField(widget=forms.PasswordInput(attrs={
“类”:“窗体控件”,
“占位符”:“占位符”
}))
name=forms.CharField(widget=forms.TextInput(attrs={
“类”:“窗体控件”,
“占位符”:“占位符”
}))
branch=forms.ModelChoiceField(queryset=branch.objects.all(),widget=forms.Select(attrs={'class':'formcontrol'}))
authorities=forms.multiplechicefield(widget=forms.CheckboxSelectMultiple,
选择=选项)
视图.py

@需要登录\u
def创建用户(请求):
add\u user\u form=AddUserForm(request.POST)
如果request.method==“POST”:
如果添加用户表单有效():
用户名=添加用户表单。已清理的数据['username']
密码=添加用户表单。已清除的数据['password']
name=添加用户表单。已清理的数据['name']
branch=添加用户表单。已清理的数据['branch']
权限=添加用户表单。已清理的数据['authorities']
选中\u users=User.objects.all()
对于check_用户中的项目:
如果item.username==用户名:
消息。错误(请求“消息”
其他:
新建用户=用户.对象.创建用户(用户名=用户名,密码=密码)
新建帐户=帐户.对象.创建(名称=名称,用户=新建用户,分支=分支)
主管单位:
如果单位='
section_obj=section.objects.get(name=unit)
Rule.objects.create(account=new\u account,section=section\u obj)
返回重定向('user\u details',pk=new\u account.id)
其他:
add\u user\u form=AddUserForm(request.POST)
上下文={
“添加用户表单”:添加用户表单,
}
返回呈现(请求“users/users\u create.html”,上下文)
最后,这里是我如何尝试使用“unittest”:

类TestCreateUser(TestCase):
def设置(自):
新建用户=user.objects.create用户(用户名='user',密码='password')
new_branch=branch.objects.create(name='test branch')
Account.objects.create(user=new\u user,name='ay name',branch=new\u branch)
def测试访问未经授权(自行):
response=self.client.get('/user/create/'))
self.assertEqual(response.status_代码,302)
self.assertEqual(response.url,“/login/?next=/user/create/”)
def测试访问授权(自行):
self.client.login(用户名='user',密码='password')
response=self.client.get('/user/create/'))
self.assertEqual(response.status_代码,200)
self.assertTemplateUsed(响应“users/users\u create.html”)
def测试\后请求\空数据(自身):
self.client.login(用户名='user',密码='password')
response=self.client.post('/user/create/',{})
self.assertFormError(响应“添加用户表单”,“用户名”,“此字段为必填项”。)
self.assertFormError(响应“添加用户表单”、“密码”、“此字段是必需的”。)
self.assertFormError(响应“添加用户表单”,“名称”,“此字段为必填项”。)
self.assertFormError(响应“添加用户表单”、“分支”、“此字段为必填项”。)
assertFormError(响应“添加用户表单”、“权限”、“此字段为必填项”。)
def测试\请求后\无效\数据(自身):
self.client.login(用户名='user',密码='password')
new_branch=branch.objects.create(name='test branch 2')
_列表=['ay 7aga','ay 7etta']
text='只是一个文本'
对于范围(130)内的i:
text+=“h”
response=self.client.post(“/user/create/”,
{'username':text,'password':'pass','name':text,'branch':new_branch,
“权威”:_列表})
self.assertEqual(response.status_代码,200)
def测试后请求有效数据(自身):
self.client.login(用户名='user',密码='password')
new_branch=branch.objects.create(name='test branch 3')
该榜单单单=[[((“15733日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方㶡')]
text='只是一个文本'
response=self.client.post(“/user/create/”,
{'username':text,'password':'pass','name':text,'branch':new_branch,
“权威”:_列表})
self.assertEqual(response.status_代码,302)
错误总是来自与我的字段相关的代码块:

def test\u post\u request\u有效数据(self):
self.client.login(用户名='user',密码='password')
new_branch=branch.objects.create(name='test branch 3')
该榜单单单=[[((“15733日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方㶡')]
text='只是一个文本'
response=self.client.post(“/user/create/”,
{'username':text,'password':'pass','name':text,'branch':new_branch,
from django.urls import reverse

def test_post_request_valid_data(self):
    self.client.login(username='user', password='password')
    new_branch = Branch.objects.create(name='test branch 3')
    the_list = [('إدارة المستخدمين', 'إدارة المستخدمين'), ('إدارة عامة', 'إدارة عامة')]
    text = 'just a text'
    response = self.client.post('/user/create/',
                                {'username': text, 'password': 'pass', 'name': text, 'branch': new_branch,
                                 'authorities': the_list}, follow=True)
    self.assertRedirects(response, reverse('user_details', kwargs={'pk': "1"}))