test_process.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from itertools import product
  2. import pytest
  3. @pytest.fixture
  4. def scenario(request):
  5. return request.getfixturevalue(request.param)
  6. FORMS_FORMDATA = [
  7. 'wtf_formdata', 'pydantic_formdata'
  8. ]
  9. FORMS_DATA = [
  10. 'wtf', 'pydantic',
  11. ]
  12. VALID_SCENARIOS = [
  13. 'scenario_simple',
  14. 'scenario_nested'
  15. ]
  16. INVALID_SCENARIOS = [
  17. 'scenario_simple_bad',
  18. 'scenario_nested_bad',
  19. ]
  20. @pytest.mark.xfail
  21. @pytest.mark.parametrize(
  22. 'scenario',
  23. VALID_SCENARIOS + INVALID_SCENARIOS,
  24. indirect=True
  25. )
  26. def test_process(scenario):
  27. assert scenario.wtf.data == scenario.pydantic.data
  28. assert scenario.wtf_formdata.data == scenario.pydantic_formdata.data
  29. @pytest.mark.parametrize(
  30. 'scenario, form_name',
  31. product(VALID_SCENARIOS + INVALID_SCENARIOS, FORMS_FORMDATA + FORMS_DATA),
  32. indirect=['scenario']
  33. )
  34. def test_data(scenario, form_name):
  35. form = getattr(scenario, form_name)
  36. assert form.data == scenario.data
  37. @pytest.mark.xfail
  38. @pytest.mark.parametrize(
  39. 'scenario, form_name',
  40. product(VALID_SCENARIOS, FORMS_FORMDATA + FORMS_DATA),
  41. indirect=['scenario']
  42. )
  43. def test_validate(scenario, form_name):
  44. form = getattr(scenario, form_name)
  45. assert form.validate()
  46. @pytest.mark.xfail
  47. @pytest.mark.parametrize(
  48. 'scenario, form_name',
  49. product(INVALID_SCENARIOS, FORMS_FORMDATA),
  50. indirect=['scenario']
  51. )
  52. def test_errors_formdata(scenario, form_name):
  53. form = getattr(scenario, form_name)
  54. assert not form.validate()
  55. assert form.errors
  56. @pytest.mark.xfail
  57. @pytest.mark.parametrize(
  58. 'scenario, form_name',
  59. product(INVALID_SCENARIOS, FORMS_DATA),
  60. indirect=['scenario']
  61. )
  62. def test_errors_data(scenario, form_name):
  63. form = getattr(scenario, form_name)
  64. assert form.validate()
  65. assert form.errors == {}