Django формы проверки неполевых ошибок - PullRequest
0 голосов
/ 11 января 2020

Я хотел бы попросить метод, чтобы проверить, возникли ли какие-либо неполевые ошибки во время проверки формы в Django. До сих пор я нашел решение сделать это во время тестирования представления . Ну, это не то, что я искал, так как мне интересно делать это при тестах форм .

Я знаю, как искать ошибки полей:

class FormTest(TestCase)
    def test_fields_errors(self):
        """
        Suppose form has one field which has to be filled
        """

        form = TestForm()
        form.full_clean()

        self.assertFalse(form.is_valid())
        self.assertIsInstance(
            form.errors.as_data()['required_field'][0],
            ValidationError
        )
        self.assertEquals(
            form.errors['deadline_datetime'][0],
            'This field must not be empty'
        )

Есть ли способ сделать это, когда мы имеем дело с неполевыми ошибками?

1 Ответ

0 голосов
/ 11 января 2020

Я отвечаю на свой вопрос, но я также хочу начать обсуждение, если есть какое-либо лучшее решение.

С небольшой помощью отладчика я обнаружил, что в form.errors также появляются неполевые ошибки. Но на этот раз не было ни одного ключа, названного как неполевые ошибки. Все, что я нашел, было немного странным ключом __all__, но он позволил мне получить доступ к требуемым ошибкам:

class FormTest(TestCase)
    def test_fields_errors(self):
    """
    Suppose form has two fields and either one has to be filled
    """

    form = TestForm()
    form.full_clean()

    self.assertFalse(form.is_valid())
    self.assertIsInstance(
            form.errors.as_data()['__all__'][0],
            ValidationError
    )
    assertEquals(
        errors['__all__'][0],
        'Fill at least one field'
    )

Итак, я смог найти ошибку, которую искал во время тестирования повышения ошибок вне поля .

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