URL не найден при использовании NestedSimpleRouter и APITestCase - PullRequest
0 голосов
/ 19 февраля 2019

Я могу выполнить операцию CRUD, когда я получаю доступ к API через Postman и Swagger.Но когда я пытаюсь получить доступ к URL-адресу через TestCases, он показывает не найденную ошибку.

Это происходит, когда я пытаюсь получить доступ к URL с вложенной маршрутизацией в моих тестовых примерах.Как правильно делать в тестовых случаях.

urls.py

from django.conf.urls import include, url
from rest_framework_nested import routers

router = routers.SimpleRouter(trailing_slash=False)
router.register('company', CompanyViewSet, base_name='companies')
company_routers = routers.NestedSimpleRouter(router, r'company', 
                                        lookup='companyrate')
company_routers.register(r'rate', RateViewSet, base_name='disposal-rate')

urlpatterns = [
              url(r'^', include(router.urls)),
              url(r'^', include(company_routers.urls)),
              ]


test.py

from rest_framework.test import APITestCase
from users.models import User

class TestCompanyRates(APITestCase):

fixtures = ['user.json', 'company.json']

data = {
        "company": 1,
         "rate": 123
     }

def setUp(self):
     self.user = User.objects.get(email='coordinator@outlook.com')
     self.client.force_authenticate(user=self.user)

def test_rates(self):

    response = self.client.post('company/1/rate/', self.data)
    self.assertEqual(response.status_code, 201, "API 
                          should return 200 OK status")

Я новичок в APITestCases.Я использую Django 2.1, Python 3.6 и drf-nested-routers 0.90.URL, и ошибка упоминается ниже.Это ошибка, которую я получаю, когда пытаюсь опубликовать данные по URL:

URL: localhost: 8000 / company / 1 / rate и Error: status_code = 404, Not Found

...