Commit b749300d by Will Daly

Use css_has_value() to fix failure in course-overview.feature

parent 31980150
...@@ -72,7 +72,7 @@ def i_click_the_text_span(step, text): ...@@ -72,7 +72,7 @@ def i_click_the_text_span(step, text):
span_locator = '.toggle-button-sections span' span_locator = '.toggle-button-sections span'
assert_true(world.browser.is_element_present_by_css(span_locator)) assert_true(world.browser.is_element_present_by_css(span_locator))
# first make sure that the expand/collapse text is the one you expected # first make sure that the expand/collapse text is the one you expected
assert_equal(world.browser.find_by_css(span_locator).value, text) assert_true(world.css_has_value(span_locator, text))
world.css_click(span_locator) world.css_click(span_locator)
......
...@@ -170,7 +170,7 @@ def i_change_grace_period(_step, grace_period): ...@@ -170,7 +170,7 @@ def i_change_grace_period(_step, grace_period):
# this to happen, then we can end up with # this to happen, then we can end up with
# an invalid value (e.g. "00:0048:00") # an invalid value (e.g. "00:0048:00")
# which prevents us from saving. # which prevents us from saving.
assert_true(world.css_has_value(grace_period_css, "00:00", allow_blank=False)) assert_true(world.css_has_value(grace_period_css, "00:00"))
# Set the new grace period # Set the new grace period
ele.value = grace_period ele.value = grace_period
......
...@@ -194,8 +194,7 @@ def is_css_not_present(css_selector, wait_time=5): ...@@ -194,8 +194,7 @@ def is_css_not_present(css_selector, wait_time=5):
@world.absorb @world.absorb
def css_has_text(css_selector, text, index=0, def css_has_text(css_selector, text, index=0, strip=False):
strip=False, allow_blank=True):
""" """
Return a boolean indicating whether the element with `css_selector` Return a boolean indicating whether the element with `css_selector`
has `text`. has `text`.
...@@ -203,15 +202,12 @@ def css_has_text(css_selector, text, index=0, ...@@ -203,15 +202,12 @@ def css_has_text(css_selector, text, index=0,
If `strip` is True, strip whitespace at beginning/end of both If `strip` is True, strip whitespace at beginning/end of both
strings before comparing. strings before comparing.
If `allow_blank` is False, wait for the element to have non-empty
text before making the assertion. This is useful for elements
that are populated by JavaScript after the page loads.
If there are multiple elements matching the css selector, If there are multiple elements matching the css selector,
use `index` to indicate which one. use `index` to indicate which one.
""" """
# If we're expecting a non-empty string, give the page
if not allow_blank: # a chance to fill in text fields.
if text:
world.wait_for(lambda _: world.css_text(css_selector, index=index)) world.wait_for(lambda _: world.css_text(css_selector, index=index))
actual_text = world.css_text(css_selector, index=index) actual_text = world.css_text(css_selector, index=index)
...@@ -224,18 +220,17 @@ def css_has_text(css_selector, text, index=0, ...@@ -224,18 +220,17 @@ def css_has_text(css_selector, text, index=0,
@world.absorb @world.absorb
def css_has_value(css_selector, value, index=0, allow_blank=False): def css_has_value(css_selector, value, index=0):
""" """
Return a boolean indicating whether the element with Return a boolean indicating whether the element with
`css_selector` has the specified `value`. `css_selector` has the specified `value`.
If `allow_blank` is False, wait for the element to have
a value that is a non-empty string.
If there are multiple elements matching the css selector, If there are multiple elements matching the css selector,
use `index` to indicate which one. use `index` to indicate which one.
""" """
if not allow_blank: # If we're expecting a non-empty string, give the page
# a chance to fill in values
if value:
world.wait_for(lambda _: world.css_value(css_selector, index=index)) world.wait_for(lambda _: world.css_value(css_selector, index=index))
return world.css_value(css_selector, index=index) == value return world.css_value(css_selector, index=index) == value
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment