Enable all background color tests on all widgets
- 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
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