Skip to content

Commit d9790e3

Browse files
committed
add radio example tests and images
1 parent 56deb75 commit d9790e3

File tree

10 files changed

+85
-7
lines changed

10 files changed

+85
-7
lines changed

sdk/python/examples/controls/radio/__init__.py

Whitespace-only changes.

sdk/python/examples/controls/radio/basic.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ def handle_button_click(e: ft.Event[ft.Button]):
2222
)
2323

2424

25-
ft.run(main)
25+
if __name__ == "__main__":
26+
ft.run(main)

sdk/python/examples/controls/radio/handling_selection_changes.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ def handle_selection_change(e: ft.Event[ft.RadioGroup]):
2222
)
2323

2424

25-
ft.run(main)
25+
if __name__ == "__main__":
26+
ft.run(main)

sdk/python/examples/controls/radio/styled.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ def main(page: ft.Page):
2727
)
2828

2929

30-
ft.run(main)
30+
if __name__ == "__main__":
31+
ft.run(main)

sdk/python/packages/flet/docs/controls/radio.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
class_name: flet.Radio
33
examples: ../../examples/controls/radio
4-
example_images: ../examples/controls/radio/media
4+
example_images: ../test-images/examples/material/golden/macos/radio
55
---
66

7-
{{ class_summary(class_name) }}
7+
{{ class_summary(class_name, example_images + "/image_for_docs.png", image_caption="Simple radio buttons") }}
88

99
## Examples
1010

@@ -16,7 +16,7 @@ example_images: ../examples/controls/radio/media
1616
--8<-- "{{ examples }}/basic.py"
1717
```
1818

19-
{{ image(example_images + "/basic.gif", alt="basic", width="80%") }}
19+
{{ image(example_images + "/basic.png", alt="basic", width="80%") }}
2020

2121

2222

@@ -26,7 +26,7 @@ example_images: ../examples/controls/radio/media
2626
--8<-- "{{ examples }}/handling_selection_changes.py"
2727
```
2828

29-
{{ image(example_images + "/handling_selection_changes.gif", alt="handling-selection-changes", width="80%") }}
29+
{{ image(example_images + "/handling_selection_changes.png", alt="handling-selection-changes", width="80%") }}
3030

3131

3232
### Styled radio buttons
25.6 KB
Loading
21.1 KB
Loading
5.46 KB
Loading
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import pytest
2+
3+
import flet as ft
4+
import flet.testing as ftt
5+
6+
from examples.controls.radio import basic, handling_selection_changes, styled
7+
8+
9+
@pytest.mark.asyncio(loop_scope="function")
10+
async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request):
11+
flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT
12+
await flet_app_function.assert_control_screenshot(
13+
request.node.name,
14+
ft.RadioGroup(
15+
content=ft.Row(
16+
controls=[ft.Radio(label=f"{i}") for i in range(1, 4)],
17+
alignment=ft.MainAxisAlignment.CENTER,
18+
expand=True,
19+
),
20+
expand=True,
21+
),
22+
)
23+
24+
25+
# @pytest.mark.parametrize(
26+
# "flet_app_function",
27+
# [{"flet_app_main": basic.main}],
28+
# indirect=True,
29+
# )
30+
# @pytest.mark.asyncio(loop_scope="function")
31+
# async def test_basic(flet_app_function: ftt.FletTestApp):
32+
# flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT
33+
# flet_app_function.page.enable_screenshots = True
34+
# flet_app_function.page.update()
35+
# red = await flet_app_function.tester.find_by_text("Red")
36+
# await flet_app_function.tester.tap(red)
37+
# await flet_app_function.tester.pump_and_settle()
38+
# submit = await flet_app_function.tester.find_by_text("Submit")
39+
# await flet_app_function.tester.tap(submit)
40+
# await flet_app_function.tester.pump_and_settle()
41+
# flet_app_function.assert_screenshot(
42+
# "basic",
43+
# await flet_app_function.take_page_controls_screenshot(),
44+
# )
45+
46+
47+
# @pytest.mark.parametrize(
48+
# "flet_app_function",
49+
# [{"flet_app_main": handling_selection_changes.main}],
50+
# indirect=True,
51+
# )
52+
# @pytest.mark.asyncio(loop_scope="function")
53+
# async def test_handling_selection_changes(flet_app_function: ftt.FletTestApp):
54+
# flet_app_function.page.enable_screenshots = True
55+
# flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT
56+
# flet_app_function.page.update()
57+
# blue = await flet_app_function.tester.find_by_text("Blue")
58+
# await flet_app_function.tester.tap(blue)
59+
# await flet_app_function.tester.pump_and_settle()
60+
# flet_app_function.assert_screenshot(
61+
# "handling_selection_changes",
62+
# await flet_app_function.take_page_controls_screenshot(
63+
# pixel_ratio=flet_app_function.screenshots_pixel_ratio
64+
# ),
65+
# )

sdk/python/packages/flet/src/flet/controls/material/radio.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@
2121
class Radio(LayoutControl, AdaptiveControl):
2222
"""
2323
Radio buttons let people select a single option from two or more choices.
24+
25+
```python
26+
ft.RadioGroup(
27+
content=ft.Row(
28+
controls=[ft.Radio(label=f"{i}") for i in range(1, 4)],
29+
alignment=ft.MainAxisAlignment.CENTER,
30+
)
31+
)
32+
```
33+
2434
"""
2535

2636
label: str = ""

0 commit comments

Comments
 (0)