| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import pytest
- import factory
- from collections import namedtuple
- from wtforms import Form, fields
- from werkzeug.datastructures import ImmutableMultiDict
- from pydantic_form import PydanticForm
- from pydantic import BaseModel
- ScenarioClasses = namedtuple("ScenarioClasses", ['wtf_form', 'pydantic_form', 'schema', 'data_factory'])
- ScenarioInstances = namedtuple("ScenarioInstances", ['wtf_form', 'pydantic_form', 'formdata', 'data'])
- class SimpleSchema(BaseModel):
- integer: int
- string: str
- class SimpleWTForm(Form):
- _schema = SimpleSchema
- integer = fields.IntegerField()
- string = fields.StringField()
- class SimpleForm(SimpleWTForm, PydanticForm):
- _schema = SimpleSchema
- class SimpleFormDataFactory(factory.Factory):
- class Meta:
- model = dict
- integer = factory.Faker('pyint')
- string = factory.Faker('pystr')
- @pytest.fixture(scope="session")
- def scenario_classes_simple():
- return ScenarioClasses(SimpleWTForm, SimpleForm, SimpleSchema, SimpleFormDataFactory)
- @pytest.fixture(scope="session")
- def instance_factory():
- def _factory(scenario_classes):
- data = scenario_classes.data_factory()
- return ScenarioInstances(
- scenario_classes.wtf_form(data=data),
- scenario_classes.pydantic_form(data=data),
- ImmutableMultiDict(data),
- data
- )
- return _factory
- @pytest.fixture(scope="session")
- def scenario_instance_simple(instance_factory, scenario_classes_simple):
- return instance_factory(scenario_classes_simple)
|