test_iterators.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import pytest
  2. from pydantic_form.iterators import iter_form, iter_schema, iter_form_class, iter_schema_class
  3. @pytest.mark.parametrize(
  4. 'scenario',
  5. [
  6. 'scenario_simple',
  7. 'scenario_simple_list',
  8. 'scenario_nested',
  9. 'scenario_nested_list',
  10. 'scenario_double_nested'
  11. ], indirect=True
  12. )
  13. def test_iterator_schema(scenario):
  14. data = scenario.data_factory.valid()
  15. keys = scenario.keys
  16. assert [k for k, _, _ in iter_schema_class(scenario.schema)] == keys.class_
  17. schema_instance = scenario.schema(**data)
  18. assert [k for k, _, _ in iter_schema_class(scenario.schema)] == keys.class_
  19. assert [k for k, _ in iter_schema(schema_instance)] == keys.instance
  20. schema_construct = scenario.schema.construct(data, scenario.schema.__fields__)
  21. assert [k for k, _ in iter_schema(schema_construct)] == keys.instance
  22. @pytest.mark.parametrize(
  23. 'scenario',
  24. [
  25. 'scenario_simple',
  26. 'scenario_simple_list',
  27. 'scenario_nested',
  28. 'scenario_nested_list',
  29. 'scenario_double_nested'
  30. ], indirect=True
  31. )
  32. def test_iterator_form(scenario):
  33. keys = scenario.keys
  34. assert [k for k, _, _ in iter_form_class(scenario.form)] == keys.class_
  35. form = scenario.form()
  36. assert [k for k, _, _ in iter_form_class(scenario.form)] == keys.class_
  37. assert [k for k, _ in iter_form(form)] == keys.instance