Skip to content

Commit e3b028b

Browse files
committed
add menuitembutton example tests and images
1 parent 9a1586c commit e3b028b

File tree

11 files changed

+127
-3
lines changed

11 files changed

+127
-3
lines changed

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

Whitespace-only changes.

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,5 @@ def handle_on_hover(e: ft.Event[ft.MenuItemButton]):
6767
)
6868

6969

70-
ft.run(main)
70+
if __name__ == "__main__":
71+
ft.run(main)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import flet as ft
2+
3+
4+
def main(page: ft.Page):
5+
page.theme_mode = ft.ThemeMode.LIGHT
6+
7+
mib1 = ft.MenuItemButton(
8+
content=ft.Text("Yes"),
9+
on_click=lambda e: print("yes"),
10+
)
11+
mib2 = ft.MenuItemButton(
12+
content=ft.Text("No"),
13+
on_click=lambda e: print("no"),
14+
)
15+
mib3 = ft.MenuItemButton(
16+
content=ft.Text("Maybe"),
17+
on_click=lambda e: print("maybe"),
18+
)
19+
20+
page.add(ft.Row(controls=[mib1, mib2, mib3]))
21+
22+
23+
ft.run(main)

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

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

7-
{{ class_summary(class_name) }}
7+
{{ class_summary(class_name, example_images + "/image_for_docs.png", image_caption="Menu item buttons outside of menubar") }}
88

99
## Examples
1010

24.8 KB
Loading
16.7 KB
Loading
25.6 KB
Loading
14.5 KB
Loading
4.79 KB
Loading
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import pytest
2+
3+
import flet as ft
4+
import flet.testing as ftt
5+
6+
from examples.controls.menu_item_button import basic
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.Row(
15+
controls=[
16+
ft.MenuItemButton(
17+
content=ft.Text("Yes"),
18+
on_click=lambda e: print("yes"),
19+
autofocus=True,
20+
),
21+
ft.MenuItemButton(
22+
content=ft.Text("No"),
23+
on_click=lambda e: print("no"),
24+
),
25+
ft.MenuItemButton(
26+
content=ft.Text("Maybe"),
27+
on_click=lambda e: print("maybe"),
28+
),
29+
],
30+
alignment=ft.MainAxisAlignment.CENTER,
31+
height=50,
32+
width=200,
33+
expand=True,
34+
),
35+
)
36+
37+
38+
@pytest.mark.parametrize(
39+
"flet_app_function",
40+
[{"flet_app_main": basic.main}],
41+
indirect=True,
42+
)
43+
@pytest.mark.asyncio(loop_scope="function")
44+
async def test_basic(flet_app_function: ftt.FletTestApp):
45+
flet_app_function.page.enable_screenshots = True
46+
flet_app_function.resize_page(400, 400)
47+
flet_app_function.page.update()
48+
await flet_app_function.tester.pump_and_settle(
49+
duration=ft.Duration(milliseconds=500)
50+
)
51+
flet_app_function.assert_screenshot(
52+
"basic1",
53+
await flet_app_function.page.take_screenshot(
54+
pixel_ratio=flet_app_function.screenshots_pixel_ratio
55+
),
56+
)
57+
btn = await flet_app_function.tester.find_by_text("BgColors")
58+
await flet_app_function.tester.tap(btn)
59+
await flet_app_function.tester.pump_and_settle()
60+
flet_app_function.assert_screenshot(
61+
"basic2",
62+
await flet_app_function.page.take_screenshot(
63+
pixel_ratio=flet_app_function.screenshots_pixel_ratio
64+
),
65+
)
66+
mib = await flet_app_function.tester.find_by_text("Green")
67+
await flet_app_function.tester.tap(mib)
68+
await flet_app_function.tester.pump_and_settle()
69+
flet_app_function.assert_screenshot(
70+
"basic3",
71+
await flet_app_function.page.take_screenshot(
72+
pixel_ratio=flet_app_function.screenshots_pixel_ratio
73+
),
74+
)
75+
76+
flet_app_function.create_gif(
77+
["basic1", "basic2", "basic3"],
78+
"basic",
79+
duration=1600,
80+
)

0 commit comments

Comments
 (0)