beeware / beeware/toga

Enable all background color tests on all widgets

Open
#3,015 5 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
5.4k
Forks
827
Avg merge
15h 39m
Merged PRs (30d)
40

Description

### What is the problem or limitation you are having?

Related PRs: #3009, #2484
### Context:
Currently all the 3 background color tests on the testbed cannot be enabled for all widgets, since there are problems associated with the widget background color on some platforms like on Android and Winforms. If we enable all 3 background color tests on every widget, then the testbed would pass on some, but would fail on other platforms. At the same time, we cannot correct their behavior to make them pass the tests as fixes for those platforms exist on separate PRs.
For example, If we enable all the 3 tests: test_background_color, test_background_color_reset, test_background_transparent on the Box widget then the tests would pass on iOS, but would fail on Winforms, since the fix for winforms exists on a separate PR.

Since behavioral changes need tests that confirms their behavior. So, to prevent a deadlock situation that would prevent this PR from being merged, I have created this issue to keep track of the widgets on which background color tests are not enabled. Since all 3 tests are enabled on most widgets so the list would be small. Afterwards, when all 3 dependent PRs are merged, we can enable all the 3 background color tests on all the widgets.

### Current status:
||test_background_color|test_background_color_reset|test_background_color_transparency|
|--|--|--|--|
|`ActivityIndicator`||||
|`Box`|:white_check_mark:|:white_check_mark:||
|`Button`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`Canvas`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`DateInput`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`DetailedList`||||
|`Divider`||||
|`ImageView`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`Label`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`MapView`||||
|`MultilineTextInput`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`NumberInput`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`OptionContainer`||||
|`PasswordInput`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`ProgressBar`||||
|`ScrollContainer`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`Selection`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`Slider`||||
|`SplitContainer`||||
|`Switch`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`Table`|:white_check_mark:|:white_check_mark:||
|`TextInput`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`TimeInput`|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|`Tree`|:white_check_mark:|:white_check_mark:||
|`WebView`||||

### Additional context

Note: There are some widgets on which background color setting might not be relevant like on `MapView` or `WebView`. So, I will add more context for those widgets later.

Contributor guide

Open the contributing guide

Research direction

Start in the testbed with test_background_color, test_background_color_reset, and test_background_transparency, using the widget status table to identify missing coverage. Check related PRs #3009 and #2484 and the platform-specific behavior before enabling tests; done means all relevant widgets pass these tests across supported platforms.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.