Skip to content

fix(webdriver): preserve direct connect root paths and custom executor state - #1365

Draft
KazuCocoa wants to merge 1 commit into
masterfrom
fix/direct-connect-follow-up
Draft

KazuCocoa wants to merge 1 commit into
masterfrom
fix/direct-connect-follow-up

Conversation

@KazuCocoa

Copy link
Copy Markdown
Member

Change list

Follow-up to #1358. A directConnectPath of "" is a valid root endpoint, but was treated as missing. Preserve it for both capability formats, including when an empty prefixed path overrides a legacy path.

Reuse the existing command executor instead of invoking its constructor again. This preserves subclasses with required constructor arguments, instance state, and registered commands. Copy the client config so the caller's configuration remains unchanged; clear the old HTTP pool, reevaluate proxy selection for the new endpoint, and rebuild the pool when keep-alive is enabled. Read the effective config directly from the executor.

Regression coverage includes root paths, prefixed precedence, custom executor state and commands, both keep-alive settings, and proxy selection/pool cleanup. The root-path and custom-constructor regressions fail on #1358's original implementation.

Validation

  • Python 3.14 / Selenium 4.52: all 240 unit tests passed (warnings from the existing test suite).
  • ruff check ., ruff format --check ., and mypy appium passed.

Types of changes

  • Bugfix
  • Unit tests added/updated

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.

1 participant