Skip to content

fix: parse inline Appium service arguments - #1294

Merged
KazuCocoa merged 2 commits into
appium:masterfrom
lucasmariano003-wq:codex/python-service-equals-args
Sep 8, 2026
Merged

fix: parse inline Appium service arguments#1294
KazuCocoa merged 2 commits into
appium:masterfrom
lucasmariano003-wq:codex/python-service-equals-args

Conversation

@lucasmariano003-wq

Copy link
Copy Markdown
Contributor

Description

AppiumService forwards --option=value arguments to Appium, but its status URL parser only recognizes separate option/value tokens. For example, Appium starts successfully with --base-path=/wd/hub, while the client polls /status and reports a startup timeout.

Recognize inline values when extracting service arguments. Separate values and short aliases retain their existing behavior; values containing additional = characters are preserved. The change only affects argument parsing.

Validation

  • Reproduced through AppiumService.start against Appium 3.7.0 on an ephemeral localhost port with isolated APPIUM_HOME: before the fix, startup timed out while an independent request to the configured status endpoint received HTTP 200.
  • After the fix, real-server startup passed with inline values, separate long options, mixed forms, and separate short aliases.
  • Added 11 argument-to-status-URL cases, including individual inline host/port/base-path options, aliases, embedded =, defaults, and unrelated option names.
  • All 184 unit tests and make check passed (Ruff, formatting, Mypy over 320 source files).
  • Both published files were fetched back and their hashes match the tested copies.

OpenAI Codex performed the implementation and local validation for this GitHub account; maintainer review is pending.

If accepted, please confirm whether this PR qualifies for compensation under the Appium contributor compensation scheme and the applicable amount. I understand that classification and payment remain at the project's discretion.

Recognize --option=value when constructing the service status URL. Reproduced with Appium 3.7.0: the old client timed out while the configured endpoint returned HTTP200; inline, separate and alias formats start successfully with this patch. All 184 unit tests and make check passed.
Add 11 cases for inline host, port and base path, long and short forms, embedded equals, defaults and unrelated options. All 184 unit tests, Ruff, formatting and Mypy passed; real Appium startup confirmed four supported argument forms.
@KazuCocoa
KazuCocoa merged commit 2f3c83f into appium:master Sep 8, 2026
10 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants