es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo escribir casos de prueba de API para vistas genéricas en DRF?

Aquí estoy escribiendo algunos TestCase para algunas consultas de conjunto de resultados para ver en la API y obtener el error “no es un nombre válido de función o patrón”. ¡No tengo ninguna idea de qué falta aquí! ¿Hay alguna solución para esto?

views.py

class StudentView(generics.ListAPIView):
    queryset = StudentDetails.objects.raw('SELECT * FROM collegedetails.college_studentdetails LIMIT 3;')
    serializer_class = StudentDetailsSerializers

test_views.py

from rest_framework.test import APITestCase
from rest_framework.reverse import reverse
from rest_framework import status

STUDENT_URL = reverse('student/')
class StudentsDetailsTest(APITestCase):
    def test_details(self):
        response = self.client.get(STUDENT_URL, format='json')
        self.assertEqual(response.status_code, status.HTTP_200_OK)

college/urls.py

urlpatterns = [
    path('student/', views.StudentView.as_view(), name='student'),
]

django.urls.exceptions.NoReverseMatch: No se encontró ninguna coincidencia inversa para ‘student/’. ‘student/’ no es una función de vista o un nombre de patrón válido.

Ran 1 test in 0.000s

FAILED (errors=1)

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “no es un nombre de función o patrón válido” sugiere que puede haber un problema con el patrón de URL en el archivo college/urls.py. El error NoReverseMatch indica que la búsqueda inversa para la vista “student/” ha fallado, lo que significa que el patrón de URL no coincide con la vista.

    Una posible solución es verificar la ortografía y la sintaxis del patrón de URL en el archivo college/urls.py. También es posible que el patrón de URL necesite incluir un espacio de nombres (namespace) o app_name si varias aplicaciones están utilizando el mismo patrón de URL.

    Otra posible solución es asegurarse de que la función de vista se esté importando correctamente en el archivo college/urls.py. Esto se puede hacer verificando la declaración de importación y asegurándose de que la vista esté ubicada en el directorio correcto.

    Por último, también es posible que el problema esté con la consulta queryset en el archivo views.py. El mensaje de error menciona un error de “función no válida”, lo que podría indicar que la consulta SQL sin procesar no se está interpretando correctamente. Sería útil volver a verificar la sintaxis de la consulta SQL y asegurarse de que sea válida.

    En general, se necesitaría más información para determinar la causa exacta del error y proporcionar una solución específica.

Comments are closed.