Как задать несколько верных ответов assertEqual в django.test

При запросе по адресу DELETE /v1/job/335/ может быть два кода состояния HTTP (409 или 404). Оба не являются ошибкой с точки зрения логики программы. Но в тестах я не могу понять, как указать несколько верных вариантов для метода self.assertEqual. Подскажите, пожалуйста, может есть другой метод позволяющий установить несколько возможных правильных значений?

Код примера:

# DELETE запрос к API. 4.5 Остановка расчёта
    def test_job_service_stop(self):
        comment = {"comment": "because I want"}
        response = client.delete('/v1/job/335/', data = comment)
        self.assertEqual((response.status_code, status.HTTP_409_CONFLICT) or (response.status_code, status.HTTP_404_NOT_FOUND))

TypeError: assertEqual() missing 1 required positional argument: 'second'


Ответы (2 шт):

Автор решения: Za Ars

Просто замените на другой assert

self.assertTrue(response.status_code in [status.HTTP_409_CONFLICT, status.HTTP_404_NOT_FOUND])
→ Ссылка
Автор решения: Roman Konoval

Используйте assertIn:

self.assertIn(
     response.status_code,
     [status.HTTP_409_CONFLICT, status.HTTP_404_NOT_FOUND]
)

Можно, конечно, и assertTrue использовать, но у assertTrue минус, что когда условие не исполняется, то стандартное сообщение об ошибке не очень полезное: expected Trues was False. Нужно вручную добавлять сообщение об ошибке, чтоб видеть, какое реально значение получили.

assertIn же сам покажет реальное значение, которое пришло.

→ Ссылка