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))
示例#2
0
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()))
示例#5
0
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'
示例#6
0
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'