@pytest.mark.parametrize(
        ("validator_funcs", "errors", "stop_after"),
        [
            (
                [
                    lambda f: _raiser(ValueError("An Error")),
                    lambda f: None,
                    lambda f: _raiser(ValueError("Another Error")),
                    lambda f: _raiser(StopValidation("Stop!")),
                    lambda f: _raiser(ValueError("This Won't Show.")),
                ],
                ["An Error", "Another Error", "Stop!"],
                3,
            ),
            (
                [
                    lambda f: _raiser(ValueError("An Error")),
                    lambda f: None,
                    lambda f: _raiser(ValueError("Another Error")),
                    lambda f: _raiser(StopValidation),
                    lambda f: _raiser(ValueError("This Won't Show.")),
                ],
                ["An Error", "Another Error"],
                3,
            ),
        ],
    )
    def test_form_level_validation_meta_fails(self, validator_funcs, errors,
                                              stop_after):
        validator_funcs = [pretend.call_recorder(v) for v in validator_funcs]

        class TestForm(Form):
            class Meta:
                validators = validator_funcs

        form = TestForm()

        assert not form.validate()
        assert form.errors == {"__all__": errors}
        for i, v in enumerate(validator_funcs):
            assert v.calls == [pretend.call(form)]
            if i >= stop_after:
                break
dataset/ETHPy150Open pypa/warehouse/tests/unit/test_forms.py/TestForm.test_form_level_validation_meta_fails/original