Skip to content

fix(webdriver): normalize orientation value to uppercase in setter - #15

Open
Dor-bl wants to merge 6 commits into
masterfrom
fix/normalize-orientation-uppercase
Open

Dor-bl wants to merge 6 commits into
masterfrom
fix/normalize-orientation-uppercase

Conversation

@Dor-bl

@Dor-bl Dor-bl commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Description

The docstrings and standard usage examples allow passing lowercase values like driver.orientation = 'landscape'. While the setter validated value.upper() against the allowed values ['LANDSCAPE', 'PORTRAIT'], it previously forwarded the raw value to the Appium server command payload instead of the normalized uppercase string.

This PR normalizes value.upper() in the command payload and adds a unit test verifying case normalization.

Changes

  • In appium/webdriver/webdriver.py: pass value.upper() in Command.SET_SCREEN_ORIENTATION payload.
  • In test/unit/webdriver/webdriver_test.py: add test_orientation_setter_normalizes_case to verify lowercase inputs ('landscape', 'portrait') are sent as uppercase.

Dor-bl and others added 6 commits September 14, 2026 13:38
* test: add unit tests for orientation setter

* test: add unit tests for orientation setter

This patch introduces unit tests for the `orientation` setter and getter
in `test/unit/webdriver/webdriver_test.py`. It tests the happy paths
('LANDSCAPE' and 'PORTRAIT') as well as the error handling for invalid
values. Additionally, it modifies the actual orientation setter code in
`appium/webdriver/webdriver.py` to raise a `WebDriverException` when
an invalid value is passed rather than silently skipping the command,
improving reliability and code correctness.

* test: add unit tests for orientation setter

This patch introduces unit tests for the `orientation` setter and getter
in `test/unit/webdriver/webdriver_test.py`. It tests the happy paths
('LANDSCAPE' and 'PORTRAIT') as well as the error handling for invalid
values. Additionally, it modifies the actual orientation setter code in
`appium/webdriver/webdriver.py` to raise a `WebDriverException` when
an invalid value is passed rather than silently skipping the command,
improving reliability and code correctness.

It also updates the flutter app asset download urls in
`.github/workflows/functional-test.yml` since the `latest` tag is
pointing to a release without the required artifacts.

* test: add unit tests for orientation setter

This patch introduces unit tests for the `orientation` setter and getter
in `test/unit/webdriver/webdriver_test.py`. It tests the happy paths
('LANDSCAPE' and 'PORTRAIT') as well as the error handling for invalid
values. Additionally, it modifies the actual orientation setter code in
`appium/webdriver/webdriver.py` to raise a `WebDriverException` when
an invalid value is passed rather than silently skipping the command,
improving reliability and code correctness.

It also updates the flutter app asset download urls in
`.github/workflows/functional-test.yml` since the `latest` tag is
pointing to a release without the required artifacts.

* test: fix flutter app asset download url in ci

The `appium-flutter-server` repo released version `0.0.34`, which
seems to have removed the assets uploaded to the releases page for
`app-debug.apk` and `ios.zip` that were present in `0.0.33` and older.
This caused the CI pipeline to fail because the `latest` tag redirected
to the `0.0.34` release, and curling the asset download URLs resulted in
a 404.

This commit pins the URLs in the `.github/workflows/functional-test.yml`
file to use the `0.0.32` release explicitly, so the assets can be
successfully downloaded and the CI can pass.

* test: fix timeouts in ios safari test

The `ios_test` in the CI pipeline started timing out due to inadequate
timeouts set for the driver creation.

This commit increases the `wda_launch_timeout` in the iOS helper
options to 240000ms. It also increases the `client_config.timeout` to
1200 seconds and adds `options.new_command_timeout = 600` to prevent
the tests from timing out prematurely during the simulator boot and
safari initialization.

* test: fix timeouts in ios safari test

The `ios_test` in the CI pipeline started timing out due to inadequate
timeouts set for the driver creation.

This commit increases the `wda_launch_timeout` in the iOS helper
options to 240000ms. It also increases the `client_config.timeout` to
1200 seconds and adds `options.new_command_timeout = 1200` to prevent
the tests from timing out prematurely during the simulator boot and
safari initialization.

---------

Co-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>
@Dor-bl
Dor-bl force-pushed the fix/normalize-orientation-uppercase branch from 505ee66 to 65886bb Compare September 15, 2026 19:15
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