Skip to content

Commit

Permalink
🚨 added test
Browse files Browse the repository at this point in the history
  • Loading branch information
Ryan Patrick Kyle committed Aug 12, 2019
1 parent 10404e0 commit 8f6dafd
Showing 1 changed file with 49 additions and 9 deletions.
58 changes: 49 additions & 9 deletions tests/integration/callbacks/test_no_update.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from selenium.webdriver.support.select import Select
import time

app = """
library(dash)
Expand All @@ -16,19 +17,49 @@
list(label = "Do nothing", value = "nothing")
),
id = "color-selector"),
htmlButton(children = "Select all the colors!",
id = "multi-selector"
),
htmlDiv(id='message-box',
children='Please select a colour choice from the dropdown menu.')
children='Please select a color choice from the dropdown menu.'),
htmlDiv(id='message-box2',
children=' ')
)
)
)
app$callback(output=list(id='message-box2', property='children'),
params=list(
input(id='multi-selector', property='n_clicks')),
function(n_clicks)
{
# if button has been clicked, n_clicks is numeric()
# on first launch of callback at layout initialization,
# value of n_clicks will be list(NULL), which is not
# comparable using >, < or =; hence the is.numeric()
# check
if (is.numeric(n_clicks) && n_clicks >= 1)
{
# return a vector to ensure that the check for
# class(x) == "no_update" isn't made for objects
# where length(x) > 1
return(c("Multiple color values: ",
"#FF0000, ",
"#00FF00, ",
"#0000FF ",
"returned!")
)
}
}
)
app$callback(output=list(id='message-box', property='children'),
params=list(
input(id='color-selector', property='value')),
function(color)
{
if (color %in% c("#FF0000", "#00FF00", "#0000FF")) {
msg <- sprintf("The hexadecimal representation of your last chosen colour is %s",
msg <- sprintf("The hexadecimal representation of your last chosen color is %s",
color)
return(msg)
} else {
Expand All @@ -37,27 +68,36 @@
}
)
app$run_server()
app$run_server(component_cache_max_age=0)
"""


def test_rsnu001_no_update(dashr):
dashr.start_server(app)
dashr.find_element("#color-selector").click()
dashr.find_elements("div.VirtualizedSelectOption")[0].click()
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen colour is #FF0000"
time.sleep(1)
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen color is #FF0000"
dashr.find_element("#color-selector").click()
dashr.find_elements("div.VirtualizedSelectOption")[3].click()
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen colour is #FF0000"
time.sleep(1)
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen color is #FF0000"
dashr.find_element("#color-selector").click()
dashr.find_elements("div.VirtualizedSelectOption")[1].click()
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen colour is #00FF00"
time.sleep(1)
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen color is #00FF00"
dashr.find_element("#color-selector").click()
dashr.find_elements("div.VirtualizedSelectOption")[3].click()
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen colour is #00FF00"
time.sleep(1)
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen color is #00FF00"
dashr.find_element("#color-selector").click()
dashr.find_elements("div.VirtualizedSelectOption")[2].click()
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen colour is #0000FF"
time.sleep(1)
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen color is #0000FF"
dashr.find_element("#color-selector").click()
dashr.find_elements("div.VirtualizedSelectOption")[3].click()
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen colour is #0000FF"
time.sleep(1)
assert dashr.find_element("#message-box").text == "The hexadecimal representation of your last chosen color is #0000FF"
dashr.find_element("#multi-selector").click()
time.sleep(1)
assert dashr.find_element("#message-box").text == "Multiple color values: #FF0000, #00FF00, #0000FF returned!"

0 comments on commit 8f6dafd

Please sign in to comment.