unitarias test pruebas parallel form django django-testing

test - Django Reverse con argumentos ''()'' y argumentos de palabras clave ''{}'' no encontrados



test form django (4)

Hola, tengo un problema exasperante.

Tengo un patrón de URL así:

# mproject/myapp.urls.py url(r''^project/(?P<project_id>/d+)/$'',''user_profile.views.EditProject'',name=''edit_project''),

funciona bien en el navegador, pero para probar, cuando hago esto en el shell:

from django.test import Client from django.core.urlresolvers import reverse client= Client() response = client.get(reverse(''edit_project''), project_id=4)

Me da el temido:

NoReverseMatch: Reverse for ''edit_project'' with arguments ''()'' and keyword arguments ''{}'' not found.

¿Que me estoy perdiendo aqui?


Debes especificar project_id :

reverse(''edit_project'', kwargs={''project_id'':4})

Doc here


El ''nombre_aplicación'' es el espacio de nombres que le dio a la configuración de url, y no el nombre real de la aplicación.

La forma correcta sería agregar un parámetro adicional a su configuración de url - ''namespace'' esto sería real el ''app_name'' que user2517191 fue mencionado y ''edit_project'' en client.get (reverse (''app_name: edit_project'') sería el nombre del parámetro que le dio a la configuración de url.


Este problema me dio un gran dolor de cabeza cuando traté de utilizar el reverso para generar el enlace de activación y enviarlo por correo electrónico, por supuesto. Así que creo que desde tests.py será lo mismo. La forma correcta de hacerlo es siguiendo:

from django.test import Client from django.core.urlresolvers import reverse #app name - name of the app where the url is defined client= Client() response = client.get(reverse(''app_name:edit_project''), project_id=4)