def test_nodes_rel(provider, rel): sel.force_navigate('containers_nodes') list_tbl_node = CheckboxTable( table_locator="//div[@id='list_grid']//table") ui_nodes = [r.name.text for r in list_tbl_node.rows()] mgmt_objs = provider.mgmt.list_node() # run only if table is not empty if ui_nodes: # verify that mgmt pods exist in ui listed pods assert set(ui_nodes).issubset( [obj.name for obj in mgmt_objs]), 'Missing objects' for name in ui_nodes: obj = Node(name, provider) val = obj.get_detail('Relationships', rel) if val == '0': continue obj.click_element('Relationships', rel) try: val = int(val) assert len([r for r in list_tbl_node.rows()]) == val except ValueError: assert val == InfoBlock.text('Properties', 'Name')
def test_nodes_rel(provider, rel): sel.force_navigate('containers_nodes') ui_nodes = [r.name.text for r in list_tbl.rows()] mgmt_objs = provider.mgmt.list_node() # run only if table is not empty if ui_nodes: # verify that mgmt pods exist in ui listed pods assert set(ui_nodes).issubset([obj.name for obj in mgmt_objs ]), 'Missing objects' for name in ui_nodes: obj = Node(name, provider) val = obj.get_detail('Relationships', rel) if val == '0': continue obj.click_element('Relationships', rel) try: val = int(val) assert len([r for r in list_tbl.rows()]) == val except ValueError: assert val == InfoBlock.text('Properties', 'Name')
def test_nodes_rel(provider, rel): navigate_to(provider, 'Details') sel.click(InfoBlock.element('Relationships', 'Nodes')) list_tbl_node = CheckboxTable( table_locator="//div[@id='list_grid']//table") ui_nodes = [r.name.text for r in list_tbl_node.rows()] mgmt_objs = provider.mgmt.list_node() assert set(ui_nodes).issubset( [obj.name for obj in mgmt_objs]), 'Missing objects' for name in ui_nodes: node = Node(name, provider) val = node.get_detail('Relationships', rel) if val == '0': # the row can't be clicked when there are no items, and has class 'no-hover' logger.info('No items for node relationship: {}'.format(rel)) continue # Should already be here, but just in case navigate_to(node, 'Details') sel.click(InfoBlock.element('Relationships', rel)) try: val = int(val) # best effort to include all items from rel in one page if paginator.page_controls_exist(): logger.info('Setting results per page to 1000 for {}'.format(rel)) paginator.results_per_page(1000) else: logger.warning('Unable to increase results per page, ' 'assertion against number of rows may fail.') assert len([r for r in list_tbl_node.rows()]) == val except ValueError: # if the conversion to integer failed, its a non-scalar relationship assert val == InfoBlock.text('Properties', 'Name')