Skip to content

Commit 11041c2

Browse files
committed
Split alert dialog tests
1 parent 93c6d7c commit 11041c2

File tree

9 files changed

+115
-108
lines changed

9 files changed

+115
-108
lines changed
Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import asyncio
2-
31
import pytest
42

53
import flet as ft
@@ -30,54 +28,3 @@ async def test_alert_dialog_basic(flet_app: ftt.FletTestApp, request):
3028
pixel_ratio=flet_app.screenshots_pixel_ratio
3129
),
3230
)
33-
34-
35-
@pytest.mark.asyncio(loop_scope="module")
36-
async def test_update_body(flet_app: ftt.FletTestApp, request):
37-
flet_app.page.theme_mode = ft.ThemeMode.LIGHT
38-
ad = ft.AlertDialog(
39-
key="ad",
40-
title=ft.Text("Test"),
41-
bgcolor=ft.Colors.YELLOW,
42-
actions_alignment=ft.MainAxisAlignment.END,
43-
actions=[
44-
ok := ft.TextButton(
45-
"OK",
46-
visible=True,
47-
),
48-
cancel := ft.TextButton(
49-
"Cancel",
50-
visible=True,
51-
),
52-
],
53-
)
54-
flet_app.page.enable_screenshots = True
55-
flet_app.page.window.width = 400
56-
flet_app.page.window.height = 600
57-
flet_app.page.show_dialog(ad)
58-
flet_app.page.update()
59-
await flet_app.tester.pump_and_settle()
60-
assert (await flet_app.tester.find_by_text("OK")).count == 1
61-
62-
flet_app.assert_screenshot(
63-
"update_body_1",
64-
await flet_app.page.take_screenshot(
65-
pixel_ratio=flet_app.screenshots_pixel_ratio
66-
),
67-
)
68-
69-
# change dialog color and hide "OK" button
70-
await asyncio.sleep(1)
71-
ad.bgcolor = ft.Colors.RED
72-
ok.visible = not ok.visible # hide button
73-
cancel.disabled = not cancel.disabled # disable button
74-
flet_app.page.update()
75-
await flet_app.tester.pump_and_settle()
76-
assert (await flet_app.tester.find_by_text("OK")).count == 0
77-
78-
flet_app.assert_screenshot(
79-
"update_body_2",
80-
await flet_app.page.take_screenshot(
81-
pixel_ratio=flet_app.screenshots_pixel_ratio
82-
),
83-
)
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import asyncio
2+
3+
import pytest
4+
5+
import flet as ft
6+
import flet.testing as ftt
7+
8+
9+
@pytest.mark.asyncio(loop_scope="module")
10+
async def test_update_body(flet_app: ftt.FletTestApp, request):
11+
flet_app.page.theme_mode = ft.ThemeMode.LIGHT
12+
ad = ft.AlertDialog(
13+
key="ad",
14+
title=ft.Text("Test"),
15+
bgcolor=ft.Colors.YELLOW,
16+
actions_alignment=ft.MainAxisAlignment.END,
17+
actions=[
18+
ok := ft.TextButton(
19+
"OK",
20+
visible=True,
21+
),
22+
cancel := ft.TextButton(
23+
"Cancel",
24+
visible=True,
25+
),
26+
],
27+
)
28+
flet_app.page.enable_screenshots = True
29+
flet_app.page.window.width = 400
30+
flet_app.page.window.height = 600
31+
flet_app.page.show_dialog(ad)
32+
flet_app.page.update()
33+
await flet_app.tester.pump_and_settle()
34+
assert (await flet_app.tester.find_by_text("OK")).count == 1
35+
36+
flet_app.assert_screenshot(
37+
"update_body_1",
38+
await flet_app.page.take_screenshot(
39+
pixel_ratio=flet_app.screenshots_pixel_ratio
40+
),
41+
)
42+
43+
# change dialog color and hide "OK" button
44+
await asyncio.sleep(1)
45+
ad.bgcolor = ft.Colors.RED
46+
ok.visible = not ok.visible # hide button
47+
cancel.disabled = not cancel.disabled # disable button
48+
flet_app.page.update()
49+
await flet_app.tester.pump_and_settle()
50+
assert (await flet_app.tester.find_by_text("OK")).count == 0
51+
52+
flet_app.assert_screenshot(
53+
"update_body_2",
54+
await flet_app.page.take_screenshot(
55+
pixel_ratio=flet_app.screenshots_pixel_ratio
56+
),
57+
)
Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import asyncio
2-
31
import pytest
42

53
import flet as ft
@@ -26,51 +24,3 @@ async def test_cupertino_alert_dialog_basic(flet_app: ftt.FletTestApp, request):
2624
pixel_ratio=flet_app.screenshots_pixel_ratio
2725
),
2826
)
29-
30-
31-
@pytest.mark.asyncio(loop_scope="module")
32-
async def test_update_body(flet_app: ftt.FletTestApp, request):
33-
flet_app.page.theme_mode = ft.ThemeMode.LIGHT
34-
ad = ft.CupertinoAlertDialog(
35-
key="ad",
36-
title=ft.Text("Test"),
37-
actions=[
38-
ok := ft.TextButton(
39-
"OK",
40-
visible=True,
41-
),
42-
cancel := ft.TextButton(
43-
"Cancel",
44-
visible=True,
45-
),
46-
],
47-
)
48-
flet_app.page.enable_screenshots = True
49-
flet_app.page.window.width = 400
50-
flet_app.page.window.height = 600
51-
flet_app.page.show_dialog(ad)
52-
flet_app.page.update()
53-
await flet_app.tester.pump_and_settle()
54-
assert (await flet_app.tester.find_by_text("OK")).count == 1
55-
56-
flet_app.assert_screenshot(
57-
"update_body_1",
58-
await flet_app.page.take_screenshot(
59-
pixel_ratio=flet_app.screenshots_pixel_ratio
60-
),
61-
)
62-
63-
# change dialog color and hide "OK" button
64-
await asyncio.sleep(1)
65-
ok.visible = not ok.visible # hide button
66-
cancel.disabled = not cancel.disabled # disable button
67-
flet_app.page.update()
68-
await flet_app.tester.pump_and_settle()
69-
assert (await flet_app.tester.find_by_text("OK")).count == 0
70-
71-
flet_app.assert_screenshot(
72-
"update_body_2",
73-
await flet_app.page.take_screenshot(
74-
pixel_ratio=flet_app.screenshots_pixel_ratio
75-
),
76-
)
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import asyncio
2+
3+
import pytest
4+
5+
import flet as ft
6+
import flet.testing as ftt
7+
8+
9+
@pytest.mark.asyncio(loop_scope="module")
10+
async def test_update_body(flet_app: ftt.FletTestApp, request):
11+
flet_app.page.theme_mode = ft.ThemeMode.LIGHT
12+
ad = ft.CupertinoAlertDialog(
13+
key="ad",
14+
title=ft.Text("Test"),
15+
actions=[
16+
ok := ft.TextButton(
17+
"OK",
18+
visible=True,
19+
),
20+
cancel := ft.TextButton(
21+
"Cancel",
22+
visible=True,
23+
),
24+
],
25+
)
26+
flet_app.page.enable_screenshots = True
27+
flet_app.page.window.width = 400
28+
flet_app.page.window.height = 600
29+
flet_app.page.show_dialog(ad)
30+
flet_app.page.update()
31+
await flet_app.tester.pump_and_settle()
32+
assert (await flet_app.tester.find_by_text("OK")).count == 1
33+
34+
flet_app.assert_screenshot(
35+
"update_body_1",
36+
await flet_app.page.take_screenshot(
37+
pixel_ratio=flet_app.screenshots_pixel_ratio
38+
),
39+
)
40+
41+
# change dialog color and hide "OK" button
42+
await asyncio.sleep(1)
43+
ok.visible = not ok.visible # hide button
44+
cancel.disabled = not cancel.disabled # disable button
45+
flet_app.page.update()
46+
await flet_app.tester.pump_and_settle()
47+
assert (await flet_app.tester.find_by_text("OK")).count == 0
48+
49+
flet_app.assert_screenshot(
50+
"update_body_2",
51+
await flet_app.page.take_screenshot(
52+
pixel_ratio=flet_app.screenshots_pixel_ratio
53+
),
54+
)

sdk/python/packages/flet/src/flet/controls/base_page.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -306,13 +306,12 @@ def show_dialog(self, dialog: DialogControl) -> None:
306306
This method adds the specified `dialog` to the active dialog stack
307307
and renders it on the page. If the dialog is already open, an exception
308308
is raised.
309-
The `on_dismiss` handler of the dialog is temporarily wrapped to ensure the
310-
dialog is removed from the stack and its dismissal event is triggered
311-
appropriately.
309+
The [`on_dismiss`][flet.DialogControl.on_dismiss] handler of the dialog
310+
is temporarily wrapped to ensure the dialog is removed from the stack and
311+
its dismissal event is triggered appropriately.
312312
313313
Args:
314-
dialog:
315-
The dialog instance to display. Must not already be open.
314+
dialog: The dialog instance to display. Must not already be open.
316315
317316
Raises:
318317
Exception: If the specified dialog is already open.

0 commit comments

Comments
 (0)