def assert_absence_of_path_in_dir_tree(selenium, browser_id, path, op_page): driver = selenium[browser_id] curr_dir = op_page(driver).data.sidebar.root_dir with pytest.raises(RuntimeError): for directory in (dir for dir in path.split('/') if dir != ''): with implicit_wait(driver, 0.05, SELENIUM_IMPLICIT_WAIT): curr_dir = curr_dir[directory]
def record_providers_hostname_oz(selenium, browser_id, oz_page, tmp_memory, displays, clipboard): driver = selenium[browser_id] world_map = oz_page(driver)['world map'] for provider_rec in oz_page(driver)['go to your files'].providers: provider_popup = None provider_rec_name = provider_rec.name provider_popup_name = '' now = time.time() # condition to prevent looping for eternity time_limit = now + 10 while (provider_popup_name != provider_rec_name) and now < time_limit: provider_rec.click() with implicit_wait(driver, 0.1, SELENIUM_IMPLICIT_WAIT): provider_popup = world_map.get_provider_with_displayed_popup() provider_popup_name = provider_popup.name if provider_popup else '' now = time.time() if now > time and (provider_popup_name != provider_rec_name): raise RuntimeError('unable to get popup for ' '"{}" provider'.format(provider_rec_name)) provider_popup.copy_hostname() prov_name = clipboard.paste(display=displays[browser_id]) tmp_memory[provider_popup_name] = prov_name
def create_and_record_access_token_for_cdmi(selenium, browser_id, oz_page, tmp_memory, displays, clipboard): driver = selenium[browser_id] panel = oz_page(driver)['access tokens'] panel.expand() with implicit_wait(driver, 0.05, SELENIUM_IMPLICIT_WAIT): if panel.tokens.count() > 0: panel.tokens[0].copy() else: panel.create_new_access_token() now = time.time() time_limit = now + 10 while now < time_limit: try: panel.tokens[0].copy() except (RuntimeError, Exception) as ex: print ex now = time.time() else: break else: raise RuntimeError("couldn't create and copy " "access token in oz") token = clipboard.paste(display=displays[browser_id]) tmp_memory[browser_id]['access_token'] = token
def assert_items_absence_in_file_browser(selenium, browser_id, item_list, tmp_memory): driver = selenium[browser_id] browser = tmp_memory[browser_id]['file_browser'] with implicit_wait(driver, 0.1, SELENIUM_IMPLICIT_WAIT): for item_name in parse_seq(item_list): with pytest.raises(RuntimeError): _ = browser[item_name]
def assert_no_provider_popup_next_to_provider_circle(selenium, browser_id, ordinal, oz_page): driver = selenium[browser_id] item = oz_page(driver)['world map'].providers[int(ordinal[:-2]) - 1] err_msg = 'provider popup for {} circle is displayed ' \ 'while it should not be' with implicit_wait(driver, 0.2, SELENIUM_IMPLICIT_WAIT): assert not item.is_displayed(), err_msg.format(ordinal)
def unset_given_item_from_home_by_clicking_on_home_icon( selenium, browser_id, provider, oz_page): driver = selenium[browser_id] item = oz_page(driver)['go to your files'].providers[provider] err_msg = 'provider named "{}" is still set as home but it should not' with implicit_wait(driver, 0.2, SELENIUM_IMPLICIT_WAIT): item.unset_from_home() assert not item.is_home(), err_msg.format(provider)
def set_given_item_as_home_by_clicking_on_home_outline(selenium, browser_id, item_type, item_name, oz_panel, oz_page): driver = selenium[browser_id] items = getattr(oz_page(driver)[oz_panel], '{}s'.format(item_type)) item = items[item_name] with implicit_wait(driver, 0.2, SELENIUM_IMPLICIT_WAIT): item.set_as_home()
def unset_given_item_from_home_by_clicking_on_home_icon(selenium, browser_id, provider, oz_page): driver = selenium[browser_id] item = oz_page(driver)['go to your files'].providers[provider] err_msg = 'provider named "{}" is still set as home but it should not' with implicit_wait(driver, 0.2, SELENIUM_IMPLICIT_WAIT): item.unset_from_home() assert not item.is_home(), err_msg.format(provider)
def assert_oz_access_tokens_list_has_num_tokens(selenium, browser_id, num, oz_page): driver = selenium[browser_id] with implicit_wait(driver, 0.1, SELENIUM_IMPLICIT_WAIT): displayed = oz_page(driver)['access tokens'].tokens.count() assert displayed == num, \ 'Displayed tokens in ACCESS TOKENS oz panel: {seen} ' \ 'instead of excepted: {excepted}'.format(seen=displayed, excepted=num)
def assert_there_is_no_item_named_in_oz_panel_list(selenium, browser_id, item_type, item_name, oz_panel, oz_page): driver = selenium[browser_id] with implicit_wait(driver, 0.1, SELENIUM_IMPLICIT_WAIT): items = getattr(oz_page(driver)[oz_panel], '{}s'.format(item_type)) assert item_name not in items, \ '{} named "{}" found in {} oz panel while it should not be ' \ 'found'.format(item_type, item_name, oz_panel)
def assert_no_such_supporting_providers_for_space(selenium, browser_id, space, providers_list, oz_page): driver = selenium[browser_id] space_rec = oz_page(driver)['data space management'].spaces[space] providers = space_rec.providers err_msg = 'space named "{}" has supporting provider named "{{}}" ' \ 'while it should not have'.format(space) with implicit_wait(driver, 0.5, SELENIUM_IMPLICIT_WAIT): for provider in parse_seq(providers_list): assert provider not in providers, err_msg.format(provider)
def assert_empty_file_browser_in_data_tab_in_op(selenium, browser_id, op_page, tmp_memory): driver = selenium[browser_id] file_browser = op_page(driver).data.file_browser with implicit_wait(driver, 1, SELENIUM_IMPLICIT_WAIT): assert file_browser.is_empty(), 'file browser in data tab in op' \ 'should be empty but is not' tmp_memory[browser_id]['file_browser'] = file_browser
def _is_home_space(driver, space_name): spaces = driver.find_elements_by_css_selector('ul.spaces-list ' 'li:not([class~="clickable"])') displayed_name = '' with implicit_wait(driver, 0.01, SELENIUM_IMPLICIT_WAIT): for space in spaces: try: space.find_element_by_css_selector('.oneicon-space-home') except NoSuchElementException: continue else: displayed_name = space.find_element_by_css_selector('.item-' 'label') err_msg = 'home space is {} instead of {}'.format(displayed_name.text, space_name) assert displayed_name.text == space_name, err_msg
def _is_home_space(driver, space_name): spaces = driver.find_elements_by_css_selector( 'ul.spaces-list ' 'li:not([class~="clickable"])') displayed_name = '' with implicit_wait(driver, 0.01, SELENIUM_IMPLICIT_WAIT): for space in spaces: try: space.find_element_by_css_selector('.oneicon-space-home') except NoSuchElementException: continue else: displayed_name = space.find_element_by_css_selector('.item-' 'label') err_msg = 'home space is {} instead of {}'.format(displayed_name.text, space_name) assert displayed_name.text == space_name, err_msg
def assert_consistent_list_of_spaces_for_provider(selenium, browser_id, provider, oz_page): driver = selenium[browser_id] prov_record = oz_page(driver)['go to your files'].providers[provider] prov_popup = oz_page(driver)['world map'].get_provider_with_displayed_popup() err_msg1 = 'Popup displayed for provider named "{}" ' \ 'instead of "{}"' err_msg2 = 'mismatch between provider popup ({name1}, {is_home1}) ' \ 'and provider record ({name2}, {is_home2}) ' \ 'in GO TO YOUR FILES panel in space list found' with implicit_wait(driver, 0.1, SELENIUM_IMPLICIT_WAIT): assert provider == prov_popup.name, err_msg1.format(prov_popup.name, provider) for space1, space2 in itertools.izip(prov_popup.spaces, prov_record.spaces): name1, is_home1 = space1.name, space1.is_home() name2, is_home2 = space2.name, space2.is_home() assert (name1, is_home1) == (name2, is_home2), \ err_msg2.format(name1=name1, is_home1=is_home1, name2=name2, is_home2=is_home2)
def assert_consistent_list_of_spaces_for_provider(selenium, browser_id, provider, oz_page): driver = selenium[browser_id] prov_record = oz_page(driver)['go to your files'].providers[provider] prov_popup = oz_page( driver)['world map'].get_provider_with_displayed_popup() err_msg1 = 'Popup displayed for provider named "{}" ' \ 'instead of "{}"' err_msg2 = 'mismatch between provider popup ({name1}, {is_home1}) ' \ 'and provider record ({name2}, {is_home2}) ' \ 'in GO TO YOUR FILES panel in space list found' with implicit_wait(driver, 0.1, SELENIUM_IMPLICIT_WAIT): assert provider == prov_popup.name, err_msg1.format( prov_popup.name, provider) for space1, space2 in itertools.izip(prov_popup.spaces, prov_record.spaces): name1, is_home1 = space1.name, space1.is_home() name2, is_home2 = space2.name, space2.is_home() assert (name1, is_home1) == (name2, is_home2), \ err_msg2.format(name1=name1, is_home1=is_home1, name2=name2, is_home2=is_home2)
def is_displayed_dir_tree_in_data_tab_in_op_correct(selenium, browser_id, path, op_page): driver = selenium[browser_id] with implicit_wait(driver, 0.05, SELENIUM_IMPLICIT_WAIT): pwd = op_page(driver).data.sidebar.cwd.pwd() assert path == pwd, 'expected path {}\n got: {}'.format(path, pwd)