J'essaie d'exécuter un test unitaire sur un formulaire comportant plusieurs cases à cocher, mais je n'arrive pas à trouver comment envoyer les données POST. La question la plus similaire que j'ai trouvée est la suivante aquí . Mais comment puis-je intégrer cette partie codée en url dans le POST avec les autres données du formulaire ?
Si je fais quelque chose comme ceci, mon test se trompe et dit classes = request.POST.getlist('class_choices') AttributeError : L'objet 'dict' n'a pas d'attribut 'getlist' :
request = HttpRequest()
request.method = 'POST'
request.POST['fname'] = 'A'
request.POST['lname'] = 'Student'
request.POST['email'] = 'me@name.com'
request.POST['class_choices'] = urllib.urlencode({
'class_choices': ['1', '2'],
}, True)
request.POST['passwd'] = 'password'
request.POST['conpasswd'] = 'password'
response = success(request)
self.assertIn('My Browser', response.content.decode())
Mais si je fais cela, j'obtiens une erreur sur fname = request.POST['fname'] TypeError : string indices must be integers, not str
request.POST = urllib.urlencode({
'class_choices': ['1', '2'],
'fname': 'A',
'lname': 'Student',
'email': 'me@name.com',
'passwd': 'password',
'conpasswd': 'password'
}, True)
response = success(request)