def test_properties(provider, appliance, test_item, soft_assert): instances = test_item.collection_object(appliance).get_random_instances(count=2) for instance in instances: if isinstance(test_item.expected_fields, dict): expected_fields = version.pick(test_item.expected_fields) else: expected_fields = test_item.expected_fields for field in expected_fields: view = navigate_to(instance, 'Details') try: soft_get(view.entities.properties.read(), field, dict_=True) except AttributeError: soft_assert(False, '{} "{}" properties table has missing field - "{}"' .format(test_item.obj.__name__, instance.name, field))
def test_properties(provider, appliance, test_item, soft_assert): instances = test_item.collection_object(appliance).get_random_instances( count=2) for instance in instances: if isinstance(test_item.expected_fields, dict): expected_fields = version.pick(test_item.expected_fields) else: expected_fields = test_item.expected_fields for field in expected_fields: view = navigate_to(instance, 'Details') try: soft_get(view.entities.properties.read(), field, dict_=True) except AttributeError: soft_assert( False, '{} "{}" properties table has missing field - "{}"'.format( test_item.obj.__name__, instance.name, field))
def test_properties(provider, test_item, soft_assert): if current_version() < "5.7" and test_item.obj == Template: pytest.skip( 'Templates are not exist in CFME version lower than 5.7. skipping...' ) instances = test_item.obj.get_random_instances(provider, count=2) for instance in instances: if isinstance(test_item.expected_fields, dict): expected_fields = version.pick(test_item.expected_fields) else: expected_fields = test_item.expected_fields for field in expected_fields: try: soft_get(instance.summary.properties, field) except AttributeError: soft_assert( False, '{} "{}" properties table has missing field - "{}"'.format( test_item.obj.__name__, instance.name, field))
def test_breadcrumbs(provider, soft_assert): for dataset in DATA_SETS: if current_version() < '5.7' and dataset.obj == Template: continue rows = navigate_and_get_rows(provider, dataset.obj, 1) if not rows: pytest.skip( 'Could not test breadcrums: No records found in {}\'s table'. format(dataset.obj.__name__)) row = rows[-1] instance_name = row[2].text row.click() breadcrumb_elements = breadcrumbs() soft_assert( breadcrumb_elements, 'Breadcrumbs not found in {} {} summary page'.format( dataset.obj.__name__, instance_name)) bread_names_2_element = { sel.text_sane(b): b for b in breadcrumb_elements } try: breadcrumb_element = soft_get(bread_names_2_element, dataset.obj_base_name, dict_=True) except: soft_assert( False, 'Could not find breadcrumb "{}" in {} {} summary page. breadcrumbs: {}' .format(dataset.obj_base_name, bread_names_2_element.keys(), dataset.obj.__name__, instance_name)) breadcrumb_name = sel.text_sane(breadcrumb_element) sel.click(breadcrumb_element) # We verify the location as following since we want to prevent from name convention errors soft_assert( dataset.obj_base_name in summary_title().lower(), 'Breadcrumb link "{}" in {} {} page should navigate to ' '{}s main page. navigated instead to: {}'.format( breadcrumb_name, dataset.obj.__name__, instance_name, dataset.obj.__name__, sel.current_url()))
def test_soft_get(): class TestObj: a = 1 b = 2 c = 3 aa = 11 bb = 22 bbb = 222 container_image = 'container_image' image_registry = 'image_registry' test_dict = { 'a': 1, 'b': 2, 'c': 3, 'aa': 11, 'bb': 22, 'container_image': 'container_image', 'image_registry': 'image_registry' } for tested in (TestObj, test_dict): is_dict = (type(tested) is dict) with pytest.raises(AttributeError): soft_get(tested, 'no_such_attr', dict_=is_dict) with pytest.raises(MultipleResultsException): soft_get(tested, 'a', dict_=is_dict, best_match=False) with pytest.raises(AttributeError): soft_get(tested, 'Aa', dict_=is_dict, case_sensitive=True) if not is_dict: with pytest.raises(TypeError): soft_get(tested, 'a', dict_=True) assert soft_get(tested, 'a', dict_=is_dict) == 1 assert soft_get(tested, 'bb', dict_=is_dict) == 22 assert soft_get(tested, 'image', dict_=is_dict) == 'image_registry' assert soft_get(tested, 'image', dict_=is_dict, dont_include=['registry']) \ == 'container_image'
def test_soft_get(): class TestObj(object): a = 1 b = 2 c = 3 aa = 11 bb = 22 bbb = 222 container_image = 'container_image' image_registry = 'image_registry' test_dict = {'a': 1, 'b': 2, 'c': 3, 'aa': 11, 'bb': 22, 'container_image': 'container_image', 'image_registry': 'image_registry'} for tested in (TestObj, test_dict): is_dict = (type(tested) is dict) with pytest.raises(AttributeError): soft_get(tested, 'no_such_attr', dict_=is_dict) with pytest.raises(MultipleResultsException): soft_get(tested, 'a', dict_=is_dict, best_match=False) with pytest.raises(AttributeError): soft_get(tested, 'Aa', dict_=is_dict, case_sensitive=True) if not is_dict: with pytest.raises(TypeError): soft_get(tested, 'a', dict_=True) assert soft_get(tested, 'a', dict_=is_dict) == 1 assert soft_get(tested, 'bb', dict_=is_dict) == 22 assert soft_get(tested, 'image', dict_=is_dict) == 'image_registry' assert soft_get(tested, 'image', dict_=is_dict, dont_include=['registry']) \ == 'container_image'