test_process.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import pytest
  2. @pytest.fixture
  3. def scenario(request):
  4. return request.getfixturevalue(request.param)
  5. VALID_SCENARIOS = [
  6. 'scenario_simple',
  7. 'scenario_nested'
  8. ]
  9. INVALID_SCENARIOS = [
  10. 'scenario_simple_bad',
  11. 'scenario_nested_bad',
  12. ]
  13. @pytest.mark.parametrize(
  14. 'scenario',
  15. VALID_SCENARIOS + INVALID_SCENARIOS,
  16. indirect=True
  17. )
  18. def test_process(scenario):
  19. assert scenario.wtf.data == scenario.pydantic.data
  20. assert scenario.wtf_formdata.data == scenario.pydantic_formdata.data
  21. @pytest.mark.parametrize(
  22. 'scenario',
  23. VALID_SCENARIOS,
  24. indirect=True
  25. )
  26. def test_validate(scenario):
  27. assert scenario.wtf.validate()
  28. assert scenario.wtf_formdata.validate()
  29. assert scenario.pydantic.validate()
  30. assert scenario.pydantic_formdata.validate()
  31. @pytest.mark.parametrize(
  32. 'scenario',
  33. INVALID_SCENARIOS,
  34. indirect=True
  35. )
  36. def test_errors(scenario):
  37. assert scenario.wtf.validate()
  38. assert not scenario.wtf_formdata.validate()
  39. assert scenario.pydantic.validate()
  40. assert not scenario.pydantic_formdata.validate()
  41. assert scenario.wtf.errors == {}
  42. assert scenario.wtf_formdata.errors
  43. assert scenario.pydantic.errors == {}
  44. assert scenario.pydantic_formdata.errors