Skip to content

Commit 9b1c45a

Browse files
authored
test(dev-server): support UI port (#1273)
see #748
1 parent 5d433f0 commit 9b1c45a

4 files changed

Lines changed: 18 additions & 0 deletions

File tree

temporalio/bridge/src/testing.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ pub struct DevServerConfig {
2525
port: Option<u16>,
2626
database_filename: Option<String>,
2727
ui: bool,
28+
ui_port: Option<u16>,
2829
log_format: String,
2930
log_level: String,
3031
extra_args: Vec<String>,
@@ -133,6 +134,7 @@ impl From<DevServerConfig> for ephemeral_server::TemporalDevServerConfig {
133134
.maybe_port(conf.port)
134135
.maybe_db_filename(conf.database_filename)
135136
.ui(conf.ui)
137+
.maybe_ui_port(conf.ui_port)
136138
.log((conf.log_format, conf.log_level))
137139
.extra_args(conf.extra_args)
138140
.build()

temporalio/bridge/testing.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class DevServerConfig:
2727
port: int | None
2828
database_filename: str | None
2929
ui: bool
30+
ui_port: int | None
3031
log_format: str
3132
log_level: str
3233
extra_args: Sequence[str]

temporalio/testing/_workflow.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ async def start_local(
9191
dev_server_download_version: str = "default",
9292
dev_server_extra_args: Sequence[str] = [],
9393
dev_server_download_ttl: timedelta | None = None,
94+
ui_port: int | None = None,
9495
) -> WorkflowEnvironment:
9596
"""Start a full Temporal server locally, downloading if necessary.
9697
@@ -149,6 +150,7 @@ async def start_local(
149150
dev_server_extra_args: Extra arguments for the CLI binary.
150151
dev_server_download_ttl: TTL for the downloaded CLI binary. If unset, it will be
151152
cached indefinitely.
153+
ui_port: UI port to use if UI is enabled.
152154
153155
Returns:
154156
The started CLI dev server workflow environment.
@@ -173,6 +175,7 @@ async def start_local(
173175
new_args.append(f"{attr.name}={attr._metadata_type}")
174176
new_args += dev_server_extra_args
175177
dev_server_extra_args = new_args
178+
176179
# Start CLI dev server
177180
runtime = runtime or temporalio.runtime.Runtime.default()
178181
download_ttl_ms = None
@@ -191,12 +194,14 @@ async def start_local(
191194
port=port,
192195
database_filename=dev_server_database_filename,
193196
ui=ui,
197+
ui_port=ui_port,
194198
log_format=dev_server_log_format,
195199
log_level=dev_server_log_level,
196200
extra_args=dev_server_extra_args,
197201
download_ttl_ms=download_ttl_ms,
198202
),
199203
)
204+
200205
# If we can't connect to the server, we should shut it down
201206
try:
202207
return _EphemeralServerWorkflowEnvironment(

tests/testing/test_workflow.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,16 @@ async def test_search_attributes_on_dev_server(
317317
assert attrs == desc.typed_search_attributes
318318

319319

320+
async def test_ui_port():
321+
"""Test that ui_port parameter works correctly."""
322+
async with await WorkflowEnvironment.start_local(
323+
ui=True,
324+
ui_port=18080,
325+
) as env:
326+
# Just verify it starts without error
327+
assert env.client is not None
328+
329+
320330
def assert_timestamp_from_now(
321331
ts: datetime | float, expected_from_now: float, max_delta: float = 30
322332
) -> None:

0 commit comments

Comments
 (0)