Skip to content

Commit 4a48d5c

Browse files
committed
use +0000 instead of UTC for timezone
1 parent 5a1bc5c commit 4a48d5c

File tree

6 files changed

+168
-7
lines changed

6 files changed

+168
-7
lines changed

tests/playwright/shiny/tests_for_ai_generated_apps/input_slider/app-core.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
max=date(2023, 12, 31),
3838
value=date(2023, 6, 15),
3939
time_format="%Y-%m-%d",
40-
timezone="UTC",
40+
timezone="+0000",
4141
),
4242
ui.output_text("value4"),
4343
),
@@ -85,7 +85,7 @@
8585
datetime(2023, 9, 30, 0, 0).replace(tzinfo=timezone.utc),
8686
),
8787
time_format="%Y-%m-%d",
88-
timezone="UTC",
88+
timezone="+0000",
8989
drag_range=True,
9090
),
9191
ui.output_text("value9"),
@@ -100,7 +100,7 @@
100100
max=datetime(2023, 12, 31, 23, 59).replace(tzinfo=timezone.utc),
101101
value=datetime(2023, 6, 15, 12, 30).replace(tzinfo=timezone.utc),
102102
time_format="%Y-%m-%d %H:%M",
103-
timezone="UTC", # Use UTC instead of "+0000"
103+
timezone="+0000", # Use "+0000" instead of UTC
104104
),
105105
ui.output_text("value10"),
106106
),

tests/playwright/shiny/tests_for_ai_generated_apps/input_slider/app-express.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def value3():
4242
max=date(2023, 12, 31),
4343
value=date(2023, 6, 15),
4444
time_format="%Y-%m-%d",
45-
timezone="UTC",
45+
timezone="+0000",
4646
)
4747

4848
@render.text
@@ -102,7 +102,7 @@ def value7():
102102
datetime(2023, 9, 30, 0, 0).replace(tzinfo=timezone.utc),
103103
),
104104
time_format="%Y-%m-%d",
105-
timezone="UTC",
105+
timezone="+0000",
106106
drag_range=True,
107107
)
108108

@@ -120,7 +120,7 @@ def value9():
120120
max=datetime(2023, 12, 31, 23, 59).replace(tzinfo=timezone.utc),
121121
value=datetime(2023, 6, 15, 12, 30).replace(tzinfo=timezone.utc),
122122
time_format="%Y-%m-%d %H:%M",
123-
timezone="UTC",
123+
timezone="+0000",
124124
)
125125

126126
@render.text

tests/playwright/shiny/tests_for_ai_generated_apps/input_slider/test_input_slider_core_express.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,4 @@ def test_slider_parameters(page: Page, app: ShinyAppProc) -> None:
9999
slider10.expect_max("1704067140000.0") # 2023-12-31 23:59
100100
slider10.expect_value("2023-06-15 12:30")
101101
slider10.expect_time_format("%Y-%m-%d %H:%M")
102-
slider10.expect_timezone("UTC")
102+
slider10.expect_timezone("+0000")
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
from shiny import App, render, ui
2+
3+
# Define the UI
4+
app_ui = ui.page_fillable(
5+
# Create a navset_pill with all possible parameters
6+
ui.navset_pill(
7+
# Panel A
8+
ui.nav_panel(
9+
"A",
10+
"This is content for Panel A",
11+
ui.input_slider("n1", "N1", min=0, max=100, value=20),
12+
ui.output_text("panel_a_text"),
13+
),
14+
# Panel B
15+
ui.nav_panel(
16+
"B",
17+
"This is content for Panel B",
18+
ui.input_numeric("n2", "N2", value=10),
19+
ui.output_text("panel_b_text"),
20+
),
21+
# Panel C
22+
ui.nav_panel(
23+
"C",
24+
"This is content for Panel C",
25+
ui.input_text("txt", "Enter text", "Hello"),
26+
ui.output_text("panel_c_text"),
27+
),
28+
id="pills",
29+
),
30+
# Show which panel is currently selected
31+
ui.output_text("selected_panel"),
32+
)
33+
34+
35+
# Define the server
36+
def server(input, output, session):
37+
@render.text
38+
def panel_a_text():
39+
return f"Value of n1: {input.n1()}"
40+
41+
@render.text
42+
def panel_b_text():
43+
return f"Value of n2: {input.n2()}"
44+
45+
@render.text
46+
def panel_c_text():
47+
return f"You entered: {input.txt()}"
48+
49+
@render.text
50+
def selected_panel():
51+
return f"Currently selected panel: {input.pills()}"
52+
53+
54+
# Create the app
55+
app = App(app_ui, server)
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from shiny.express import input, render, ui
2+
3+
# Page options for the app
4+
ui.page_opts(fillable=True)
5+
6+
# Create a navset_pill with all possible parameters
7+
with ui.navset_pill(id="pills"):
8+
# Panel A
9+
with ui.nav_panel("A"):
10+
"This is content for Panel A"
11+
ui.input_slider("n1", "N1", min=0, max=100, value=20)
12+
13+
@render.text
14+
def panel_a_text():
15+
return f"Value of n1: {input.n1()}"
16+
17+
# Panel B
18+
with ui.nav_panel("B"):
19+
"This is content for Panel B"
20+
ui.input_numeric("n2", "N2", value=10)
21+
22+
@render.text
23+
def panel_b_text():
24+
return f"Value of n2: {input.n2()}"
25+
26+
# Panel C
27+
with ui.nav_panel("C"):
28+
"This is content for Panel C"
29+
ui.input_text("txt", "Enter text", "Hello")
30+
31+
@render.text
32+
def panel_c_text():
33+
return f"You entered: {input.txt()}"
34+
35+
36+
# Show which panel is currently selected
37+
@render.text
38+
def selected_panel():
39+
return f"Currently selected panel: {input.pills()}"
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
from playwright.sync_api import Page
2+
3+
from shiny.playwright import controller
4+
from shiny.pytest import create_app_fixture
5+
from shiny.run import ShinyAppProc
6+
7+
app = create_app_fixture(["app-core.py", "app-express.py"])
8+
9+
10+
def test_navset_pill_demo(page: Page, app: ShinyAppProc) -> None:
11+
page.goto(app.url)
12+
13+
# Test navset pill
14+
navset = controller.NavsetPill(page, "pills")
15+
selected_panel_text = controller.OutputText(page, "selected_panel")
16+
17+
# Test initial state
18+
navset.expect_nav_titles(["A", "B", "C"])
19+
navset.expect_nav_values(["A", "B", "C"])
20+
navset.expect_value("A") # First panel should be selected by default
21+
selected_panel_text.expect_value("Currently selected panel: A")
22+
23+
# Test Panel A components
24+
slider = controller.InputSlider(page, "n1")
25+
panel_a_text = controller.OutputText(page, "panel_a_text")
26+
27+
slider.expect_label("N1")
28+
slider.expect_min("0")
29+
slider.expect_max("100")
30+
slider.expect_value("20")
31+
panel_a_text.expect_value("Value of n1: 20")
32+
33+
# Change slider value and verify
34+
slider.set("50")
35+
panel_a_text.expect_value("Value of n1: 50")
36+
37+
# Switch to Panel B and test its components
38+
navset.set("B")
39+
navset.expect_value("B")
40+
selected_panel_text.expect_value("Currently selected panel: B")
41+
42+
numeric = controller.InputNumeric(page, "n2")
43+
panel_b_text = controller.OutputText(page, "panel_b_text")
44+
45+
numeric.expect_label("N2")
46+
numeric.expect_value("10")
47+
panel_b_text.expect_value("Value of n2: 10")
48+
49+
# Change numeric value and verify
50+
numeric.set("25")
51+
panel_b_text.expect_value("Value of n2: 25")
52+
53+
# Switch to Panel C and test its components
54+
navset.set("C")
55+
navset.expect_value("C")
56+
selected_panel_text.expect_value("Currently selected panel: C")
57+
58+
text_input = controller.InputText(page, "txt")
59+
panel_c_text = controller.OutputText(page, "panel_c_text")
60+
61+
text_input.expect_label("Enter text")
62+
text_input.expect_value("Hello")
63+
panel_c_text.expect_value("You entered: Hello")
64+
65+
# Change text value and verify
66+
text_input.set("Testing")
67+
panel_c_text.expect_value("You entered: Testing")

0 commit comments

Comments
 (0)