Skip to content

Commit cc377ff

Browse files
committed
Rename _set_property_from_payload since it is used in other places now.
1 parent a541532 commit cc377ff

File tree

4 files changed

+32
-29
lines changed

4 files changed

+32
-29
lines changed

django_unicorn/views.py

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -62,23 +62,22 @@ def _set_property_from_data(
6262
setattr(component_or_field, name, value)
6363

6464

65-
def _set_property_from_payload(
66-
component: UnicornView, payload: Dict, data: Dict = {}
65+
def _set_property_value(
66+
component: UnicornView, property_name: str, property_value: Any, data: Dict = {}
6767
) -> None:
6868
"""
69-
Sets properties on the component based on the payload.
69+
Sets properties on the component.
7070
Also updates the data dictionary which gets set back as part of the payload.
7171
7272
Args:
7373
param component: Component to set attributes on.
74-
param payload: Dictionary that comes with request.
74+
param property_name: Name of the property.
75+
param property_value: Value to set on the property.
7576
param data: Dictionary that gets sent back with the response. Defaults to {}.
7677
"""
7778

78-
property_name = payload.get("name")
79-
assert property_name is not None, "Payload name is required"
80-
property_value = payload.get("value")
81-
assert property_value is not None, "Payload value is required"
79+
assert property_name is not None, "Property name is required"
80+
assert property_value is not None, "Property value is required"
8281

8382
component.updating(property_name, property_value)
8483

@@ -258,8 +257,8 @@ def message(request: HttpRequest, component_name: str = None) -> JsonResponse:
258257
original_data = component_request.data.copy()
259258

260259
# Set component properties based on request data
261-
for (name, value) in component_request.data.items():
262-
_set_property_from_data(component, name, value)
260+
for (property_name, property_value) in component_request.data.items():
261+
_set_property_from_data(component, property_name, property_value)
263262
component.hydrate()
264263

265264
is_reset_called = False
@@ -269,7 +268,11 @@ def message(request: HttpRequest, component_name: str = None) -> JsonResponse:
269268
payload = action.get("payload", {})
270269

271270
if action_type == "syncInput":
272-
_set_property_from_payload(component, payload, component_request.data)
271+
property_name = payload.get("name")
272+
property_value = payload.get("value")
273+
_set_property_value(
274+
component, property_name, property_value, component_request.data
275+
)
273276
elif action_type == "dbInput":
274277
model = payload.get("model")
275278
db = payload.get("db", {})
@@ -337,12 +340,10 @@ def message(request: HttpRequest, component_name: str = None) -> JsonResponse:
337340
pass
338341

339342
if setter_method:
340-
# Create a fake "payload" so that nested properties will get set as expected
341343
property_name = list(setter_method.keys())[0]
342344
property_value = setter_method[property_name]
343-
payload = {"name": property_name, "value": property_value}
344345

345-
_set_property_from_payload(component, payload)
346+
_set_property_value(component, property_name, property_value)
346347
else:
347348
(method_name, params) = parse_call_method_name(call_method_name)
348349

@@ -368,12 +369,10 @@ def message(request: HttpRequest, component_name: str = None) -> JsonResponse:
368369
is_reset_called = True
369370
elif method_name == "toggle":
370371
for property_name in params:
371-
# Create a fake "payload" so that nested properties will get set as expected
372372
property_value = _get_property_value(component, property_name)
373373
property_value = not property_value
374-
payload = {"name": property_name, "value": property_value}
375374

376-
_set_property_from_payload(component, payload)
375+
_set_property_value(component, property_name, property_value)
377376
elif method_name == "validate":
378377
# Handle the validate special action
379378
validate_all_fields = True

tests/views/test_unicorn_builtins.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from datetime import datetime
22

33
from django_unicorn.components import UnicornView
4-
from django_unicorn.views import _set_property_from_data, _set_property_from_payload
4+
from django_unicorn.views import _set_property_from_data, _set_property_value
55

66

77
class NestedPropertyView(UnicornView):
@@ -19,12 +19,16 @@ def test_set_property_from_data_str():
1919
assert "property_view_updated" == component.string
2020

2121

22-
def test_set_property_from_payload_str():
22+
def test_set_property_value_str():
2323
component = NestedPropertyView(component_name="test", component_id="12345678")
2424
assert "property_view" == component.string
2525

26-
payload = {"name": "string", "value": "property_view_updated"}
27-
_set_property_from_payload(component, payload, {"string": "property_view_updated"})
26+
_set_property_value(
27+
component,
28+
"string",
29+
"property_view_updated",
30+
{"string": "property_view_updated"},
31+
)
2832

2933
assert "property_view_updated" == component.string
3034

@@ -38,12 +42,11 @@ def test_set_property_from_data_int():
3842
assert 100 == component.integer
3943

4044

41-
def test_set_property_from_payload_int():
45+
def test_set_property_value_int():
4246
component = NestedPropertyView(component_name="test", component_id="12345678")
4347
assert 99 == component.integer
4448

45-
payload = {"name": "integer", "value": 100}
46-
_set_property_from_payload(component, payload, {"integer": 100})
49+
_set_property_value(component, "integer", 100, {"integer": 100})
4750

4851
assert 100 == component.integer
4952

@@ -57,11 +60,12 @@ def test_set_property_from_data_datetime():
5760
assert datetime(2020, 1, 2) == component.datetime
5861

5962

60-
def test_set_property_from_payload_datetime():
63+
def test_set_property_value_datetime():
6164
component = NestedPropertyView(component_name="test", component_id="12345678")
6265
assert datetime(2020, 1, 1) == component.datetime
6366

64-
payload = {"name": "datetime", "value": datetime(2020, 1, 2)}
65-
_set_property_from_payload(component, payload, {"datetime": datetime(2020, 1, 2)})
67+
_set_property_value(
68+
component, "datetime", datetime(2020, 1, 2), {"datetime": datetime(2020, 1, 2)}
69+
)
6670

6771
assert datetime(2020, 1, 2) == component.datetime

tests/views/test_unicorn_dict.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from django_unicorn.components import UnicornView
2-
from django_unicorn.views import _set_property_from_data, _set_property_from_payload
2+
from django_unicorn.views import _set_property_from_data
33

44

55
class DictPropertyView(UnicornView):

tests/views/test_unicorn_field.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from django_unicorn.components import UnicornField, UnicornView
2-
from django_unicorn.views import _set_property_from_data, _set_property_from_payload
2+
from django_unicorn.views import _set_property_from_data
33

44

55
class NestedPropertyOne(UnicornField):

0 commit comments

Comments
 (0)