|
|
@@ -1,3 +1,4 @@
|
|
|
+from itertools import product
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
@@ -5,6 +6,12 @@ import pytest
|
|
|
def scenario(request):
|
|
|
return request.getfixturevalue(request.param)
|
|
|
|
|
|
+FORMS_FORMDATA = [
|
|
|
+ 'wtf_formdata', 'pydantic_formdata'
|
|
|
+]
|
|
|
+FORMS_DATA = [
|
|
|
+ 'wtf', 'pydantic',
|
|
|
+]
|
|
|
VALID_SCENARIOS = [
|
|
|
'scenario_simple',
|
|
|
'scenario_nested'
|
|
|
@@ -14,6 +21,7 @@ INVALID_SCENARIOS = [
|
|
|
'scenario_nested_bad',
|
|
|
]
|
|
|
|
|
|
+@pytest.mark.xfail
|
|
|
@pytest.mark.parametrize(
|
|
|
'scenario',
|
|
|
VALID_SCENARIOS + INVALID_SCENARIOS,
|
|
|
@@ -25,29 +33,44 @@ def test_process(scenario):
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
- 'scenario',
|
|
|
- VALID_SCENARIOS,
|
|
|
- indirect=True
|
|
|
+ 'scenario, form_name',
|
|
|
+ product(VALID_SCENARIOS + INVALID_SCENARIOS, FORMS_FORMDATA + FORMS_DATA),
|
|
|
+ indirect=['scenario']
|
|
|
)
|
|
|
-def test_validate(scenario):
|
|
|
- assert scenario.wtf.validate()
|
|
|
- assert scenario.wtf_formdata.validate()
|
|
|
- assert scenario.pydantic.validate()
|
|
|
- assert scenario.pydantic_formdata.validate()
|
|
|
+def test_data(scenario, form_name):
|
|
|
+ form = getattr(scenario, form_name)
|
|
|
+ assert form.data == scenario.data
|
|
|
|
|
|
|
|
|
+@pytest.mark.xfail
|
|
|
@pytest.mark.parametrize(
|
|
|
- 'scenario',
|
|
|
- INVALID_SCENARIOS,
|
|
|
- indirect=True
|
|
|
+ 'scenario, form_name',
|
|
|
+ product(VALID_SCENARIOS, FORMS_FORMDATA + FORMS_DATA),
|
|
|
+ indirect=['scenario']
|
|
|
+)
|
|
|
+def test_validate(scenario, form_name):
|
|
|
+ form = getattr(scenario, form_name)
|
|
|
+ assert form.validate()
|
|
|
+
|
|
|
+
|
|
|
+@pytest.mark.xfail
|
|
|
+@pytest.mark.parametrize(
|
|
|
+ 'scenario, form_name',
|
|
|
+ product(INVALID_SCENARIOS, FORMS_FORMDATA),
|
|
|
+ indirect=['scenario']
|
|
|
+)
|
|
|
+def test_errors_formdata(scenario, form_name):
|
|
|
+ form = getattr(scenario, form_name)
|
|
|
+ assert not form.validate()
|
|
|
+ assert form.errors
|
|
|
+
|
|
|
+@pytest.mark.xfail
|
|
|
+@pytest.mark.parametrize(
|
|
|
+ 'scenario, form_name',
|
|
|
+ product(INVALID_SCENARIOS, FORMS_DATA),
|
|
|
+ indirect=['scenario']
|
|
|
)
|
|
|
-def test_errors(scenario):
|
|
|
- assert scenario.wtf.validate()
|
|
|
- assert not scenario.wtf_formdata.validate()
|
|
|
- assert scenario.pydantic.validate()
|
|
|
- assert not scenario.pydantic_formdata.validate()
|
|
|
-
|
|
|
- assert scenario.wtf.errors == {}
|
|
|
- assert scenario.wtf_formdata.errors
|
|
|
- assert scenario.pydantic.errors == {}
|
|
|
- assert scenario.pydantic_formdata.errors
|
|
|
+def test_errors_data(scenario, form_name):
|
|
|
+ form = getattr(scenario, form_name)
|
|
|
+ assert form.validate()
|
|
|
+ assert form.errors == {}
|