У меня есть проект со следующей структурой:
В каждом приложении используется django rest framework.
Файл моего проекта urls.py
выглядит так:
import app1.rest_api
urlpatterns = [
path('admin/', admin.site.urls),
path('app2/', include('app2.urls')),
path('app1/', include('app1.urls')),
path('api/app1/', include(
app1.rest_api.router.urls)),
В моем файле rest_api.py
есть следующие настройки маршрутов:
router = routers.DefaultRouter()
router.register(r'myspecificmodel',
MySpecificModelViewSet, base_name='MySpecificModels')
router.register(r'myothermodels', MyOtherModelsViewSet,
base_name='MyOtherModels')
У меня есть файл test_api.py
в каталоге app1/tests
, который выглядит следующим образом:
from rest_framework import status
from rest_framework.test import APITestCase, APIClient
class URLTest(APITestCase):
def setUp(self):
self.client = APIClient()
def test_url_returns_200(self):
url = '/api/app1/myspecificmodels'
response = self.client.get(url)
# response = self.client.get(url, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(len(response.data), 1)
Это дает мне 301 ResponsePermanentRedirect
Как мне лучше всего протестировать конечную точку API? Есть ли способ назвать маршрут и проверить его с помощью reverse
, так как это может быть немного проще?