import pytest from pydantic_form.iterators import iter_form, iter_schema, iter_form_class, iter_schema_class @pytest.mark.parametrize( 'scenario', [ 'scenario_simple', 'scenario_simple_list', 'scenario_nested', 'scenario_nested_list', 'scenario_double_nested' ], indirect=True ) def test_iterator_schema(scenario): data = scenario.data_factory.valid() keys = scenario.keys assert [k for k, _, _ in iter_schema_class(scenario.schema)] == keys.class_ schema_instance = scenario.schema(**data) assert [k for k, _, _ in iter_schema_class(scenario.schema)] == keys.class_ assert [k for k, _ in iter_schema(schema_instance)] == keys.instance schema_construct = scenario.schema.construct(data, scenario.schema.__fields__) assert [k for k, _ in iter_schema(schema_construct)] == keys.instance @pytest.mark.parametrize( 'scenario', [ 'scenario_simple', 'scenario_simple_list', 'scenario_nested', 'scenario_nested_list', 'scenario_double_nested' ], indirect=True ) def test_iterator_form(scenario): keys = scenario.keys assert [k for k, _, _ in iter_form_class(scenario.form)] == keys.class_ form = scenario.form() assert [k for k, _, _ in iter_form_class(scenario.form)] == keys.class_ assert [k for k, _ in iter_form(form)] == keys.instance