Skip to content

Commit 2317f62

Browse files
committed
Adding datepicker blanks example
1 parent 33b5ef8 commit 2317f62

File tree

2 files changed

+121
-0
lines changed

2 files changed

+121
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
from datetime import date
2+
3+
from dateutil.relativedelta import relativedelta
4+
5+
from shiny import App, Inputs, Outputs, Session, reactive, render, ui
6+
7+
min_date = date.fromisoformat("2011-11-04")
8+
max_date = min_date + relativedelta(days=10)
9+
10+
app_ui = ui.page_fluid(
11+
ui.input_date_range(
12+
"standard_date_picker",
13+
"Normal Input:",
14+
start=min_date,
15+
end=max_date,
16+
min=min_date,
17+
max=max_date,
18+
format="yyyy-mm-dd",
19+
language="en",
20+
),
21+
ui.output_text("standard"),
22+
ui.br(),
23+
ui.br(),
24+
ui.input_date_range(
25+
"none_date_picker",
26+
"None Input:",
27+
start=None,
28+
end=None,
29+
min=None,
30+
max=None,
31+
format="yyyy-mm-dd",
32+
language="en",
33+
),
34+
ui.output_text("none"),
35+
ui.br(),
36+
ui.br(),
37+
ui.input_date_range(
38+
"empty_date_picker",
39+
"Empty Input:",
40+
start="",
41+
end="",
42+
min=None,
43+
max=None,
44+
format="yyyy-mm-dd",
45+
language="en",
46+
),
47+
ui.output_text("empty"),
48+
)
49+
50+
51+
def server(input: Inputs, output: Outputs, session: Session):
52+
@render.text
53+
def standard():
54+
return (
55+
"Date Picker Value: "
56+
+ str(input.standard_date_picker()[0])
57+
+ " to "
58+
+ str(input.standard_date_picker()[1])
59+
)
60+
61+
@render.text
62+
def none():
63+
return (
64+
"Date Picker Value: "
65+
+ str(input.none_date_picker()[0])
66+
+ " to "
67+
+ str(input.none_date_picker()[1])
68+
)
69+
70+
@render.text
71+
def empty():
72+
return (
73+
"Date Picker Value: "
74+
+ str(input.empty_date_picker()[0])
75+
+ " to "
76+
+ str(input.empty_date_picker()[1])
77+
)
78+
79+
@reactive.effect
80+
@reactive.event(input.update, ignore_none=True, ignore_init=True)
81+
def _():
82+
d = date.fromisoformat("2011-11-05")
83+
ui.update_date("standard_date_picker", value=d)
84+
85+
86+
app = App(app_ui, server, debug=True)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import datetime
2+
3+
from playwright.sync_api import Page
4+
5+
from shiny.playwright import controller
6+
from shiny.run import ShinyAppProc
7+
8+
9+
def test_dynamic_navs(page: Page, local_app: ShinyAppProc) -> None:
10+
page.goto(local_app.url)
11+
12+
# Check the normal date range input
13+
date1 = controller.InputDateRange(page, "standard_date_picker")
14+
date1.expect_value(("2011-11-04", "2011-11-14"))
15+
date1.expect_max_date("2011-11-14")
16+
date1.expect_min_date("2011-11-04")
17+
date_output = controller.OutputText(page, "standard")
18+
date_output.expect_value("Date Picker Value: 2011-11-04 to 2011-11-14")
19+
20+
# Check the None date range input
21+
date2 = controller.InputDateRange(page, "none_date_picker")
22+
input = datetime.date.today().strftime("%Y-%m-%d")
23+
date2.expect_value((input, input))
24+
date2.expect_max_date(None)
25+
date2.expect_min_date(None)
26+
date_output_none = controller.OutputText(page, "none")
27+
date_output_none.expect_value("Date Picker Value: " + input + " to " + input)
28+
29+
# Check the empty date range input
30+
date3 = controller.InputDateRange(page, "empty_date_picker")
31+
date3.expect_value(("", ""))
32+
date3.expect_max_date(None)
33+
date3.expect_min_date(None)
34+
date_output_empty = controller.OutputText(page, "empty")
35+
date_output_empty.expect_value("Date Picker Value: None to None")

0 commit comments

Comments
 (0)