Django Rest Frame Work - Ошибка PATCH запроса на тестирование - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь проверить мой Django вызов API Restframework. Все это работает через представление администратора в браузере. Но тестирование не проходит.

Вот мой тестовый пример:

class UrlUpdateTestCase(APITestCase):
    def setUp(self):
        url_attrs = {
            'url' : 'test.com',
            'source_url' : 'mother.com',
            'link_depth' : 3,
        }
        response = self.client.post('/api/v1/urls/new', url_attrs)

    def test_update_url(self):
        url = Url.objects.first()
        client = APIClient()
        response = client.patch(
            '/api/v1/urls/{}/'.format(url.id), data=
            {
                'url' : 'test.com.com',
                'source_url' : 'mother.com',
                'link_depth' : 3,
            },
            format='json',
        )
        if response.status_code != 201:
            print(response.content)
        updated = Url.objects.get(id=url.id)
        #print(updated)
        self.assertEqual(updated.url, 'test.com.com')

Сообщение об ошибке в консоли и включая печать ответа на запрос.

..b'\n<!doctype html>\n<html lang="en">\n<head>\n  <title>Not Found</title>\n</head>\n<body>\n  <h1>Not Found</h1><p>The requested resource was not found on this server.</p>\n</body>\n</html>\n'
E
======================================================================
FAIL: test_update_url (denker.edge.tests.UrlUpdateTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/den/den/edge/tests.py", line 75, in test_update_url
    self.assertEqual(updated.url, 'test.com.com')
AssertionError: 'test.com' != 'test.com.com'
- test.com
+ test.com.com
?         ++++

url.py

urlpatterns = [
    path('api/v1/urls/', den.edge.api_views.UrlList.as_view()),
    path('api/v1/urls/new', den.edge.api_views.UrlCreate.as_view()),
    path('api/v1/urls/<int:id>', den.edge.api_views.UrlRetrieveUpdateDestroy.as_view()),
    path('admin/', admin.site.urls),
]

Глядя на print () запроса: похоже, что URL неверный. Я не знаю, почему? Настройка тестового примера работает нормально, вызывая создание записи URL (модель) в БД.

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...