Skip to content

Commit d32172e

Browse files
committed
only check last error in display context
1 parent faf6b6c commit d32172e

File tree

5 files changed

+41
-65
lines changed

5 files changed

+41
-65
lines changed

Diff for: idom/testing.py

+31-42
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,16 @@ def open_selenium_chrome_driver_and_display_context(
3131
page_load_timeout=driver_timeout,
3232
implicit_wait_timeout=driver_timeout,
3333
) as driver:
34-
with open_sanic_hotswap_mount_and_server(
34+
mount, server = create_sanic_hotswap_mount_and_server(
3535
server_type=PerClientStateServer, host=host, port=port
36-
) as (mount, server):
37-
time.sleep(wait_for_server_start)
38-
yield (
39-
driver,
40-
create_selenium_page_get_and_display_context(
41-
driver, server, server_url, mount
42-
)[1],
43-
)
36+
)
37+
time.sleep(wait_for_server_start)
38+
yield (
39+
driver,
40+
create_selenium_page_get_and_display_context(
41+
driver, server, server_url, mount
42+
)[1],
43+
)
4444

4545

4646
def create_selenium_page_get_and_display_context(
@@ -91,52 +91,41 @@ def display_context():
9191
return get_page, display_context
9292

9393

94-
@contextmanager
95-
def open_sanic_multiview_mount_and_server(
94+
def create_sanic_multiview_mount_and_server(
9695
server_type: Type[SanicRenderServer],
9796
host: str,
9897
port: int,
9998
debug: bool = False,
10099
app: Optional[Sanic] = None,
101-
) -> Iterator[Tuple[MultiViewMount, SanicRenderServer]]:
102-
server_type = create_sanic_server_type_for_testing(server_type)
103-
try:
104-
yield multiview_server(
105-
server_type,
106-
host,
107-
port,
108-
server_options={"cors": True},
109-
run_options={"debug": debug},
110-
app=app,
111-
)
112-
finally:
113-
if server_type.last_server_error_for_idom_testing.current is not None:
114-
raise server_type.last_server_error_for_idom_testing.current # pragma: no cover
100+
) -> Tuple[MultiViewMount, SanicRenderServer]:
101+
return multiview_server(
102+
create_sanic_server_type_for_testing(server_type),
103+
host,
104+
port,
105+
server_options={"cors": True},
106+
run_options={"debug": debug},
107+
app=app,
108+
)
115109

116110

117-
@contextmanager
118-
def open_sanic_hotswap_mount_and_server(
111+
def create_sanic_hotswap_mount_and_server(
119112
server_type: Type[SanicRenderServer],
120113
host: str,
121114
port: int,
122115
sync_views: bool = False,
123116
debug: bool = False,
124117
app: Optional[Sanic] = None,
125-
) -> Iterator[Tuple[Callable[..., None], SanicRenderServer]]:
126-
server_type = create_sanic_server_type_for_testing(server_type)
127-
try:
128-
yield hotswap_server(
129-
server_type,
130-
host,
131-
port,
132-
server_options={"cors": True},
133-
run_options={"debug": debug},
134-
sync_views=sync_views,
135-
app=app,
136-
)
137-
finally:
138-
if server_type.last_server_error_for_idom_testing.current is not None:
139-
raise server_type.last_server_error_for_idom_testing.current
118+
) -> Tuple[Callable[..., None], SanicRenderServer]:
119+
120+
return hotswap_server(
121+
create_sanic_server_type_for_testing(server_type),
122+
host,
123+
port,
124+
server_options={"cors": True},
125+
run_options={"debug": debug},
126+
sync_views=sync_views,
127+
app=app,
128+
)
140129

141130

142131
def create_sanic_server_type_for_testing(

Diff for: tests/conftest.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from idom.server.sanic import PerClientStateServer
2323
from idom.testing import (
2424
create_selenium_page_get_and_display_context,
25-
open_sanic_hotswap_mount_and_server,
25+
create_sanic_hotswap_mount_and_server,
2626
open_selenium_chrome_driver,
2727
SanicRenderServerWithLastError,
2828
)
@@ -149,10 +149,7 @@ def mount_and_server(
149149
150150
The ``mount`` and ``server`` fixtures use this.
151151
"""
152-
with open_sanic_hotswap_mount_and_server(
153-
PerClientStateServer, host=host, port=port
154-
) as mount_and_server:
155-
yield mount_and_server
152+
return create_sanic_hotswap_mount_and_server(PerClientStateServer, host, port)
156153

157154

158155
@pytest.fixture(scope="module")

Diff for: tests/test_server/test_sanic/test_base.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,18 @@
55

66
import idom
77
from idom.server.sanic import PerClientStateServer
8-
from idom.testing import open_sanic_multiview_mount_and_server
8+
from idom.testing import create_sanic_multiview_mount_and_server
99

1010

1111
@pytest.fixture(scope="module")
1212
def mount_and_server(host, port):
13-
with open_sanic_multiview_mount_and_server(
13+
return create_sanic_multiview_mount_and_server(
1414
PerClientStateServer,
1515
host,
1616
port,
1717
# test that we can use a custom app instance
1818
app=Sanic(),
19-
) as mount_and_server:
20-
yield mount_and_server
19+
)
2120

2221

2322
def test_serve_has_loop_attribute(server):

Diff for: tests/test_server/test_sanic/test_multiview_server.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,14 @@
22

33
import idom
44
from idom.server.sanic import PerClientStateServer
5-
from idom.testing import open_sanic_multiview_mount_and_server
5+
from idom.testing import create_sanic_multiview_mount_and_server
66

77
from tests.driver_utils import no_such_element
88

99

1010
@pytest.fixture(scope="module")
1111
def mount_and_server(host, port):
12-
with open_sanic_multiview_mount_and_server(
13-
PerClientStateServer, host, port
14-
) as mount_and_server:
15-
yield mount_and_server
12+
return create_sanic_multiview_mount_and_server(PerClientStateServer, host, port)
1613

1714

1815
def test_multiview_server(driver_get, driver, mount, server):

Diff for: tests/test_server/test_sanic/test_shared_state_client.py

+3-9
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,7 @@
66

77
import idom
88
from idom.server.sanic import SharedClientStateServer
9-
from idom.testing import open_sanic_hotswap_mount_and_server
10-
11-
12-
@pytest.fixture(scope="module")
13-
def server_type():
14-
return SharedClientStateServer
9+
from idom.testing import create_sanic_hotswap_mount_and_server
1510

1611

1712
@pytest.fixture(scope="module")
@@ -20,10 +15,9 @@ def mount_and_server(host, port):
2015
2116
The ``mount`` and ``server`` fixtures use this.
2217
"""
23-
with open_sanic_hotswap_mount_and_server(
18+
return create_sanic_hotswap_mount_and_server(
2419
SharedClientStateServer, host, port, sync_views=True
25-
) as mount_and_server:
26-
yield mount_and_server
20+
)
2721

2822

2923
def test_shared_client_state(create_driver, mount, server_url):

0 commit comments

Comments
 (0)