Тест DRF, содержит ли список объектов JSON определенный объект

Я тестирую конечную точку из Django DRF, которая выдает JSON-список объектов. Я пытаюсь проверить, есть ли конкретный объект в возвращаемом списке. Я пробовал assertIn и assertContains, но они выдают ошибки.

Тестовый код для assertIn:

    def test_list(self):      
        client = APIClient()

        response = client.get('/api/some_list/', format='json')

        self.assertEqual(
            len(response.data),
            19
        )

        self.assertIn(
            response.data,
            {
                "id": 2,
                "name": "WhatToDo"
            }
        )

assertIn производит TypeError: unhashable type: 'ReturnList'

Тестовый код для assertContains:

    def test_list(self):      
        client = APIClient()

        response = client.get('/api/some_list/', format='json')

        self.assertEqual(
            len(response.data),
            19
        )

        self.assertContains(
            response,
            {
                "id": 2,
                "name": "WhatToDo"
            }
        )

assertContain только что провалил тест.

Какой лучший подход для проверки наличия определенного объекта в списке JSON в ответе?

Вы перевернули аргументы: assertIn, попробуйте следующее:

self.assertIn({"id": 2, "name": "WhatToDo"}, response.data)

# Or you can also write:
self.assertTrue({"id": 2, "name": "WhatToDo"} in response.data)
Вернуться на верх