|
|
@@ -2,8 +2,8 @@ import pytest
|
|
|
from wtforms import FormField, FieldList
|
|
|
|
|
|
from pydantic_form.translator import iter_form, SchemaToForm
|
|
|
-from pydantic_form.utils import recursive_get, formdata_mangle, nested_dict_iter
|
|
|
-
|
|
|
+from pydantic_form.utils import recursive_get, formdata_mangle, nested_dict_iter, rgetattr
|
|
|
+from unittest.mock import MagicMock, Mock
|
|
|
|
|
|
@pytest.fixture
|
|
|
def data(request, scenario):
|
|
|
@@ -18,14 +18,26 @@ SCENARIOS = [
|
|
|
'scenario_double_nested'
|
|
|
]
|
|
|
|
|
|
+
|
|
|
+def make_mock(**attrs):
|
|
|
+ m = Mock()
|
|
|
+ for k, v in attrs.items():
|
|
|
+ if isinstance(v, dict):
|
|
|
+ setattr(m, k, make_mock(**v))
|
|
|
+ else:
|
|
|
+ setattr(m, k, v)
|
|
|
+ return m
|
|
|
+
|
|
|
+
|
|
|
@pytest.mark.parametrize(
|
|
|
'kwargs_factory',
|
|
|
[
|
|
|
lambda data: {'data': data},
|
|
|
lambda data: {'formdata': formdata_mangle(data)},
|
|
|
+ lambda data: {'obj': make_mock(**data)},
|
|
|
lambda data: data,
|
|
|
], ids=[
|
|
|
- 'data', 'formdata', 'kwargs'
|
|
|
+ 'data', 'formdata', 'obj', 'kwargs'
|
|
|
]
|
|
|
)
|
|
|
@pytest.mark.parametrize(
|