Skip to content

Commit caa14f0

Browse files
committed
Updating tests to be more robust.
Updated test_toggle_switch_click to no longer try to test with the ProfilingPanel. The profiling panel wasn't consistent enough to return data for every run of the tests. Updated test_show_toolbar_button to wait until the show button is displayed before running the logic of the tests.`
1 parent 08c4a2e commit caa14f0

File tree

1 file changed

+37
-31
lines changed

1 file changed

+37
-31
lines changed

tests/test_javascript.py

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -187,41 +187,41 @@ def test_remote_class_click(self):
187187
)
188188

189189
def test_toggle_switch_click(self):
190-
for panel_name in ['SQLPanel', 'ProfilingPanel']:
191-
self.selenium.find_element_by_class_name(panel_name).click()
192-
panel = self.selenium.find_element_by_id(panel_name)
193-
toggle_switch = panel.find_element_by_class_name('djToggleSwitch')
194-
id_javascript_selector = (
195-
"return djdt.jQuery('#{0}').find('.djToggleSwitch').attr('{1}')")
196-
target_id = self.selenium.execute_script(
197-
id_javascript_selector.format(panel_name, 'data-toggle-id')
198-
)
199-
toggle_class = "djToggleDetails_{0}".format(target_id)
200-
toggled_element = panel.find_element_by_class_name(toggle_class)
201-
toggled = "djUnselected"
202-
untoggled = "djSelected"
203-
if panel_name == "ProfilingPanel":
204-
# Profiling panel is reversed.
205-
toggled, untoggled = untoggled, toggled
206-
207-
self.assertNotIn(
208-
untoggled,
209-
toggled_element.get_attribute('className')
210-
)
211-
if panel_name != "ProfilingPanel":
212-
self.assertIn(
213-
toggled,
214-
toggled_element.get_attribute('className')
215-
)
216-
toggle_switch.click()
190+
panel_name = 'SQLPanel'
191+
self.selenium.find_element_by_class_name(panel_name).click()
192+
panel = self.selenium.find_element_by_id(panel_name)
193+
toggle_switch = panel.find_element_by_class_name('djToggleSwitch')
194+
id_javascript_selector = (
195+
"return djdt.jQuery('#{0}').find('.djToggleSwitch').attr('{1}')")
196+
target_id = self.selenium.execute_script(
197+
id_javascript_selector.format(panel_name, 'data-toggle-id')
198+
)
199+
toggle_class = "djToggleDetails_{0}".format(target_id)
200+
toggled_element = panel.find_element_by_class_name(toggle_class)
201+
toggled = "djUnselected"
202+
untoggled = "djSelected"
203+
if panel_name == "ProfilingPanel":
204+
# Profiling panel is reversed.
205+
toggled, untoggled = untoggled, toggled
206+
207+
self.assertNotIn(
208+
untoggled,
209+
toggled_element.get_attribute('className')
210+
)
211+
if panel_name != "ProfilingPanel":
217212
self.assertIn(
218-
untoggled,
219-
toggled_element.get_attribute('className')
220-
)
221-
self.assertNotIn(
222213
toggled,
223214
toggled_element.get_attribute('className')
224215
)
216+
toggle_switch.click()
217+
self.assertIn(
218+
untoggled,
219+
toggled_element.get_attribute('className')
220+
)
221+
self.assertNotIn(
222+
toggled,
223+
toggled_element.get_attribute('className')
224+
)
225225

226226
def test_hide_toolbar_button(self):
227227
panel_name = "HeadersPanel"
@@ -235,6 +235,12 @@ def test_show_toolbar_button(self):
235235
panel_name = "HeadersPanel"
236236
panel_trigger = self.get_panel_trigger(panel_name)
237237
self.selenium.find_element_by_id("djHideToolBarButton").click()
238+
239+
self.get_web_driver_wait().until(
240+
lambda selenium:
241+
self.selenium.find_element_by_id(
242+
'djShowToolBarButton').is_displayed()
243+
)
238244
show_button = self.selenium.find_element_by_id('djShowToolBarButton')
239245
self.assertTrue(show_button.is_displayed())
240246
self.assertFalse(panel_trigger.is_displayed())

0 commit comments

Comments
 (0)