Commit c82e4ede by Will Daly

Merge pull request #2492 from edx/will/really-fix-tab-nav-test

Skip page check in promise for Tab Nav in bok-choy suite
parents 3336cc76 28c33a4f
......@@ -36,15 +36,10 @@ class TabNavPage(PageObject):
def is_on_tab(self, tab_name):
"""
Return a boolean indicating whether the current tab is `tab_name`.
Because this is a public method, it checks that we're on the right page
before accessing the DOM.
"""
current_tab_list = self.css_text('ol.course-tabs>li>a.active')
if len(current_tab_list) == 0:
self.warning("Could not find current tab")
return False
else:
return (current_tab_list[0].strip().split('\n')[0] == tab_name)
return self._is_on_tab(tab_name)
def _tab_css(self, tab_name):
"""
......@@ -73,11 +68,28 @@ class TabNavPage(PageObject):
return fulfill(Promise(_check_func, "Get all tab names"))
def _is_on_tab(self, tab_name):
"""
Return a boolean indicating whether the current tab is `tab_name`.
This is a private method, so it does NOT enforce the page check,
which is what we want when we're polling the DOM in a promise.
"""
current_tab_list = self.css_text('ol.course-tabs>li>a.active')
if len(current_tab_list) == 0:
self.warning("Could not find current tab")
return False
else:
return (current_tab_list[0].strip().split('\n')[0] == tab_name)
def _is_on_tab_promise(self, tab_name):
"""
Return a `Promise` that the user is on the tab `tab_name`.
"""
# Use the private version of _is_on_tab to skip the page check
return EmptyPromise(
lambda: self.is_on_tab(tab_name),
lambda: self._is_on_tab(tab_name),
"{0} is the current tab".format(tab_name)
)
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