Skip to content

Commit c52dd12

Browse files
committed
fix tests
1 parent 5461add commit c52dd12

File tree

1 file changed

+41
-39
lines changed

1 file changed

+41
-39
lines changed

tests/test_core/test_layout.py

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
import gc
33
import random
44
import re
5+
from collections.abc import Sequence
6+
from typing import Any
57
from weakref import finalize
68
from weakref import ref as weakref
79

@@ -12,7 +14,8 @@
1214
from idom.config import IDOM_DEBUG_MODE
1315
from idom.core.component import component
1416
from idom.core.hooks import use_effect, use_state
15-
from idom.core.layout import Layout, LayoutEventMessage, LayoutUpdateMessage
17+
from idom.core.layout import Layout
18+
from idom.core.types import LayoutEventMessage, LayoutUpdateMessage
1619
from idom.testing import (
1720
HookCatcher,
1821
StaticEventHandler,
@@ -32,6 +35,14 @@ def no_logged_errors():
3235
raise record.exc_info[1]
3336

3437

38+
def event_message(target: str, *data: Any) -> LayoutEventMessage:
39+
return {"type": "layout-event", "target": target, "data": data}
40+
41+
42+
def update_message(path: str, model: Any) -> LayoutUpdateMessage:
43+
return {"type": "layout-update", "path": path, "model": model}
44+
45+
3546
def test_layout_repr():
3647
@idom.component
3748
def MyComponent():
@@ -58,7 +69,7 @@ def Component():
5869
layout = idom.Layout(component)
5970

6071
with pytest.raises(Exception):
61-
await layout.deliver(LayoutEventMessage("something", []))
72+
await layout.deliver(event_message("something"))
6273

6374
with pytest.raises(Exception):
6475
layout.update(component)
@@ -77,19 +88,17 @@ def SimpleComponent():
7788

7889
async with idom.Layout(SimpleComponent()) as layout:
7990
update_1 = await layout.render()
80-
assert update_1 == LayoutUpdateMessage(
91+
assert update_1 == update_message(
8192
path="",
82-
old=None,
83-
new={"tagName": "", "children": [{"tagName": "div"}]},
93+
model={"tagName": "", "children": [{"tagName": "div"}]},
8494
)
8595

8696
set_state_hook.current("table")
8797

8898
update_2 = await layout.render()
89-
assert update_2 == LayoutUpdateMessage(
99+
assert update_2 == update_message(
90100
path="",
91-
old=update_1.new,
92-
new={"tagName": "", "children": [{"tagName": "table"}]},
101+
model={"tagName": "", "children": [{"tagName": "table"}]},
93102
)
94103

95104

@@ -99,7 +108,7 @@ def SomeComponent():
99108
return None
100109

101110
async with idom.Layout(SomeComponent()) as layout:
102-
assert (await layout.render()).new == {"tagName": ""}
111+
assert (await layout.render())["model"] == {"tagName": ""}
103112

104113

105114
async def test_nested_component_layout():
@@ -135,28 +144,25 @@ def make_child_model(state):
135144

136145
async with idom.Layout(Parent()) as layout:
137146
update_1 = await layout.render()
138-
assert update_1 == LayoutUpdateMessage(
147+
assert update_1 == update_message(
139148
path="",
140-
old=None,
141-
new=make_parent_model(0, make_child_model(0)),
149+
model=make_parent_model(0, make_child_model(0)),
142150
)
143151

144152
parent_set_state.current(1)
145153

146154
update_2 = await layout.render()
147-
assert update_2 == LayoutUpdateMessage(
155+
assert update_2 == update_message(
148156
path="",
149-
old=update_1.new,
150-
new=make_parent_model(1, make_child_model(0)),
157+
model=make_parent_model(1, make_child_model(0)),
151158
)
152159

153160
child_set_state.current(1)
154161

155162
update_3 = await layout.render()
156-
assert update_3 == LayoutUpdateMessage(
163+
assert update_3 == update_message(
157164
path="/children/0/children/1",
158-
old=update_2.new["children"][0]["children"][1],
159-
new=make_child_model(1),
165+
model=make_child_model(1),
160166
)
161167

162168

@@ -180,10 +186,9 @@ def BadChild():
180186
with assert_idom_did_log(match_error="error from bad child"):
181187

182188
async with idom.Layout(Main()) as layout:
183-
assert (await layout.render()) == LayoutUpdateMessage(
189+
assert (await layout.render()) == update_message(
184190
path="",
185-
old=None,
186-
new={
191+
model={
187192
"tagName": "",
188193
"children": [
189194
{
@@ -232,10 +237,9 @@ def BadChild():
232237
with assert_idom_did_log(match_error="error from bad child"):
233238

234239
async with idom.Layout(Main()) as layout:
235-
assert (await layout.render()) == LayoutUpdateMessage(
240+
assert (await layout.render()) == update_message(
236241
path="",
237-
old=None,
238-
new={
242+
model={
239243
"tagName": "",
240244
"children": [
241245
{
@@ -271,10 +275,9 @@ def Child():
271275
return {"tagName": "div", "children": {"tagName": "h1"}}
272276

273277
async with idom.Layout(Main()) as layout:
274-
assert (await layout.render()) == LayoutUpdateMessage(
278+
assert (await layout.render()) == update_message(
275279
path="",
276-
old=None,
277-
new={
280+
model={
278281
"tagName": "",
279282
"children": [
280283
{
@@ -478,7 +481,7 @@ def Child():
478481
hook.latest.schedule_render()
479482

480483
update = await layout.render()
481-
assert update.path == "/children/0/children/0/children/0"
484+
assert update["path"] == "/children/0/children/0/children/0"
482485

483486

484487
async def test_log_on_dispatch_to_missing_event_handler(caplog):
@@ -487,7 +490,7 @@ def SomeComponent():
487490
return idom.html.div()
488491

489492
async with idom.Layout(SomeComponent()) as layout:
490-
await layout.deliver(LayoutEventMessage(target="missing", data=[]))
493+
await layout.deliver(event_message("missing"))
491494

492495
assert re.match(
493496
"Ignored event - handler 'missing' does not exist or its component unmounted",
@@ -528,7 +531,7 @@ def bad_trigger():
528531
async with idom.Layout(MyComponent()) as layout:
529532
await layout.render()
530533
for i in range(3):
531-
event = LayoutEventMessage(good_handler.target, [])
534+
event = event_message(good_handler.target)
532535
await layout.deliver(event)
533536

534537
assert called_good_trigger.current
@@ -579,7 +582,7 @@ def callback():
579582
async with idom.Layout(RootComponent()) as layout:
580583
await layout.render()
581584
for _ in range(3):
582-
event = LayoutEventMessage(good_handler.target, [])
585+
event = event_message(good_handler.target)
583586
await layout.deliver(event)
584587

585588
assert called_good_trigger.current
@@ -599,10 +602,9 @@ def Inner():
599602
return idom.html.div("hello")
600603

601604
async with idom.Layout(Outer()) as layout:
602-
assert (await layout.render()) == LayoutUpdateMessage(
605+
assert (await layout.render()) == update_message(
603606
path="",
604-
old=None,
605-
new={
607+
model={
606608
"tagName": "",
607609
"children": [
608610
{
@@ -767,7 +769,7 @@ def raise_error():
767769

768770
async with idom.Layout(ComponentWithBadEventHandler()) as layout:
769771
await layout.render()
770-
event = LayoutEventMessage(bad_handler.target, [])
772+
event = event_message(bad_handler.target)
771773
await layout.deliver(event)
772774

773775

@@ -1038,7 +1040,7 @@ async def record_if_state_is_reset():
10381040
did_call_effect.clear()
10391041

10401042
for i in range(1, 5):
1041-
await layout.deliver(LayoutEventMessage(set_child_key_num.target, []))
1043+
await layout.deliver(event_message(set_child_key_num.target))
10421044
await layout.render()
10431045
assert effect_calls_without_state == {"some-key", "key-0"}
10441046
did_call_effect.clear()
@@ -1086,13 +1088,13 @@ def Root():
10861088

10871089
async with Layout(Root()) as layout:
10881090
await layout.render()
1089-
await layout.deliver(LayoutEventMessage(event_handler.target, []))
1091+
await layout.deliver(event_message(event_handler.target))
10901092
assert did_trigger.current
10911093
did_trigger.current = False
10921094

10931095
set_event_name.current("second")
10941096
await layout.render()
1095-
await layout.deliver(LayoutEventMessage(event_handler.target, []))
1097+
await layout.deliver(event_message(event_handler.target))
10961098
assert did_trigger.current
10971099
did_trigger.current = False
10981100

@@ -1144,7 +1146,7 @@ def Child():
11441146

11451147
async with idom.Layout(Parent()) as layout:
11461148
update = await layout.render()
1147-
assert update.new == {
1149+
assert update["model"] == {
11481150
"tagName": "",
11491151
"children": [
11501152
{

0 commit comments

Comments
 (0)