import pytest from pydantic_form.translator import SchemaInstanceToFormDataField, SchemaToForm @pytest.mark.parametrize('translator', [SchemaInstanceToFormDataField]) @pytest.mark.parametrize( 'scenario_name', ['scenario_classes_simple', 'scenario_classes_nested'] ) def test_data_translator(request, scenario_name, translator): scenario = request.getfixturevalue(scenario_name) data = scenario.data_factory() schema = scenario.schema(**data) form = scenario.wtf_form() keys = scenario.keys t = translator(schema, form) for k in keys: t(k) assert schema.dict() == form.data @pytest.mark.skip @pytest.mark.parametrize('translator', [SchemaInstanceToFormDataField]) @pytest.mark.parametrize( 'scenario_name', ['scenario_classes_simple', 'scenario_classes_nested'] ) def test_error_translator_bad(request, scenario_name, translator): scenario = request.getfixturevalue(scenario_name) data = scenario.data_factory() schema = scenario.schema(**data) form = scenario.wtf_form() keys = scenario.keys t = translator(schema, form) for k in keys: t(k) assert schema.dict() == form.data @pytest.mark.parametrize('translator', [SchemaToForm]) @pytest.mark.parametrize('data_factory_name', ['data_factory', 'bad_data_factory']) @pytest.mark.parametrize( 'scenario_name', ['scenario_classes_simple', 'scenario_classes_nested'] ) def test_translator(request, scenario_name, translator, data_factory_name): scenario = request.getfixturevalue(scenario_name) data = getattr(scenario, data_factory_name)() schema = scenario.schema(**data) form = scenario.wtf_form() keys = scenario.keys t = SchemaToForm(schema, form, keys) t() assert schema.dict() == form.data