Skip to content

Commit 605594c

Browse files
committed
simplify tests for dps and dpr using dash_dcc functions
1 parent c76c973 commit 605594c

File tree

1 file changed

+31
-104
lines changed

1 file changed

+31
-104
lines changed
Lines changed: 31 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,54 @@
1-
from datetime import datetime, timedelta
1+
from datetime import datetime
22

33
import dash
44
import dash_html_components as html
55
import dash_core_components as dcc
66
from dash.dependencies import Input, Output
77

8-
from selenium.webdriver.common.keys import Keys
9-
from selenium.webdriver.common.action_chains import ActionChains
10-
11-
12-
def test_rdpr001_persisted_dps(dash_dcc):
13-
def send_date_dps(target, date):
14-
(
15-
ActionChains(dash_dcc.driver).send_keys(str(date)).send_keys(Keys.ENTER)
16-
).perform()
178

9+
def test_rdpr003_persisted_dps(dash_dcc):
1810
app = dash.Dash(__name__)
1911
app.layout = html.Div(
2012
[
21-
html.Button("fire callback", id="btn"),
22-
html.Div(
23-
children=[
24-
dcc.DatePickerSingle(
25-
id="dps1",
26-
date=datetime.today(),
27-
persistence=True,
28-
persistence_type="session",
29-
),
30-
html.P("dps1", id="dps1-p"),
31-
html.Div(id="container"),
32-
html.P("dps2", id="dps2-p"),
33-
]
34-
),
13+
html.Button("fire callback", id="btn", n_clicks=1),
14+
html.Div(children=[html.Div(id="container"), html.P("dps", id="dps-p"),]),
3515
]
3616
)
3717

3818
@app.callback(Output("container", "children"), [Input("btn", "n_clicks")])
3919
def update_output(value):
4020
return dcc.DatePickerSingle(
41-
id="dps2",
42-
date=datetime.today(),
21+
id="dps",
22+
min_date_allowed=datetime(2020, 1, 1),
23+
max_date_allowed=datetime(2020, 1, 7),
24+
date=datetime(2020, 1, 3, 1, 1, 1, value),
4325
persistence=True,
4426
persistence_type="session",
4527
)
4628

47-
@app.callback(Output("dps1-p", "children"), [Input("dps1", "date")])
48-
def display_dps1(value):
49-
return value
50-
51-
@app.callback(Output("dps2-p", "children"), [Input("dps2", "date")])
52-
def display_dps2(value):
29+
@app.callback(Output("dps-p", "children"), [Input("dps", "date")])
30+
def display_dps(value):
5331
return value
5432

5533
dash_dcc.start_server(app)
56-
dps1 = dash_dcc.find_element("#dps1")
57-
dps2 = dash_dcc.find_element("#dps2")
58-
59-
dash_dcc.clear_input(dps1)
60-
send_date_dps(dps1, "01/01/2020")
61-
dash_dcc.wait_for_text_to_equal("#dps1-p", "2020-01-01")
6234

63-
dash_dcc.clear_input(dps2)
64-
send_date_dps(dps2, "01/01/2020")
65-
dash_dcc.wait_for_text_to_equal("#dps2-p", "2020-01-01")
35+
dash_dcc.select_date_single("dps", day="2")
6636

37+
dash_dcc.wait_for_text_to_equal("#dps-p", "2020-01-02")
6738
dash_dcc.find_element("#btn").click()
39+
dash_dcc.wait_for_text_to_equal("#dps-p", "2020-01-02")
6840

69-
dash_dcc.wait_for_text_to_equal("#dps1-p", "2020-01-01")
70-
dash_dcc.wait_for_text_to_equal("#dps2-p", "2020-01-01")
71-
72-
73-
def test_rdpr002_persisted_dpr(dash_dcc):
74-
def send_date_dpr(target, start_date, end_date):
75-
(
76-
ActionChains(dash_dcc.driver)
77-
.move_to_element(target)
78-
.click(target)
79-
.send_keys(Keys.END)
80-
.key_down(Keys.SHIFT)
81-
.send_keys(Keys.HOME)
82-
.key_up(Keys.SHIFT)
83-
.send_keys(str(start_date))
84-
.pause(0.2)
85-
.send_keys(Keys.END)
86-
.key_down(Keys.SHIFT)
87-
.send_keys(Keys.HOME)
88-
.key_up(Keys.SHIFT)
89-
.send_keys(str(end_date))
90-
).perform()
9141

42+
def test_rdpr004_persisted_dpr(dash_dcc):
9243
app = dash.Dash(__name__)
9344
app.layout = html.Div(
9445
[
95-
html.Button("fire callback", id="btn"),
46+
html.Button("fire callback", id="btn", n_clicks=1),
9647
html.Div(
9748
children=[
98-
dcc.DatePickerRange(
99-
id="dpr1",
100-
start_date=datetime.today() - timedelta(days=3),
101-
end_date=datetime.today(),
102-
persistence=True,
103-
persistence_type="session",
104-
),
105-
html.P("dpr1", id="dpr1-p-start"),
106-
html.P("dpr1", id="dpr1-p-end"),
10749
html.Div(id="container"),
108-
html.P("dpr2", id="dpr2-p-start"),
109-
html.P("dpr2", id="dpr2-p-end"),
50+
html.P("dpr", id="dpr-p-start"),
51+
html.P("dpr", id="dpr-p-end"),
11052
]
11153
),
11254
]
@@ -115,44 +57,29 @@ def send_date_dpr(target, start_date, end_date):
11557
@app.callback(Output("container", "children"), [Input("btn", "n_clicks")])
11658
def update_output(value):
11759
return dcc.DatePickerRange(
118-
id="dpr2",
119-
start_date=datetime.today() - timedelta(days=3),
120-
end_date=datetime.today(),
60+
id="dpr",
61+
min_date_allowed=datetime(2020, 1, 1),
62+
max_date_allowed=datetime(2020, 1, 7),
63+
start_date=datetime(2020, 1, 3, 1, 1, 1, value),
64+
end_date=datetime(2020, 1, 4, 1, 1, 1, value),
12165
persistence=True,
12266
persistence_type="session",
12367
)
12468

125-
@app.callback(Output("dpr1-p-start", "children"), [Input("dpr1", "start_date")])
126-
def display_dps1(value):
127-
return value
128-
129-
@app.callback(Output("dpr1-p-end", "children"), [Input("dpr1", "end_date")])
130-
def display_dps1(value):
69+
@app.callback(Output("dpr-p-start", "children"), [Input("dpr", "start_date")])
70+
def display_dpr_start(value):
13171
return value
13272

133-
@app.callback(Output("dpr2-p-start", "children"), [Input("dpr2", "start_date")])
134-
def display_dps2(value):
135-
return value
136-
137-
@app.callback(Output("dpr2-p-end", "children"), [Input("dpr2", "end_date")])
138-
def display_dps2(value):
73+
@app.callback(Output("dpr-p-end", "children"), [Input("dpr", "end_date")])
74+
def display_dpr_end(value):
13975
return value
14076

14177
dash_dcc.start_server(app)
142-
dpr1 = dash_dcc.find_element("div#dpr1 div div div div .DateInput_input")
143-
dpr2 = dash_dcc.find_element("div#dpr2 div div div div .DateInput_input")
14478

145-
send_date_dpr(dpr1, "01/01/2020", "01/02/2020")
146-
dash_dcc.wait_for_text_to_equal("#dpr1-p-start", "2020-01-01")
147-
dash_dcc.wait_for_text_to_equal("#dpr1-p-end", "2020-01-02")
148-
149-
send_date_dpr(dpr2, "01/01/2020", "01/02/2020")
150-
dash_dcc.wait_for_text_to_equal("#dpr2-p-start", "2020-01-01")
151-
dash_dcc.wait_for_text_to_equal("#dpr2-p-end", "2020-01-02")
79+
dash_dcc.select_date_range("dpr", (2, 5))
15280

81+
dash_dcc.wait_for_text_to_equal("#dpr-p-start", "2020-01-02")
82+
dash_dcc.wait_for_text_to_equal("#dpr-p-end", "2020-01-05")
15383
dash_dcc.find_element("#btn").click()
154-
155-
dash_dcc.wait_for_text_to_equal("#dpr1-p-start", "2020-01-01")
156-
dash_dcc.wait_for_text_to_equal("#dpr1-p-end", "2020-01-02")
157-
dash_dcc.wait_for_text_to_equal("#dpr2-p-start", "2020-01-01")
158-
dash_dcc.wait_for_text_to_equal("#dpr2-p-end", "2020-01-02")
84+
dash_dcc.wait_for_text_to_equal("#dpr-p-start", "2020-01-02")
85+
dash_dcc.wait_for_text_to_equal("#dpr-p-end", "2020-01-05")

0 commit comments

Comments
 (0)