Esempio n. 1
0
def pytest_runtest_makereport(item, call):
    # if scenarios result has fail
    if call.when == 'call':
        logger.attach_debug('logs', logger.test_log.getvalue())
        if '_browser' in item.funcargs:
            logger.attach_selenium_screenshot('Final Screenshot',
                                              item.funcargs['_browser'].driver)
Esempio n. 2
0
def check_count(objects_list, count, objects_name='-'):
    if isinstance(objects_list, (list, tuple, dict)):
        with allure.step(
                'Проверяем кол-во элементов в %s' %
                objects_name if objects_name != '-' else 'запрошенных данных'):
            if len(objects_list) != count:
                logger.attach_debug('Objects list:', objects_list)
                raise ObjectDataException(
                    'Количество элементов в "%s" не совпадает с ожидаемым. Хотели: %s, получили: %s'
                    % (objects_name, count, len(objects_list)))
    else:
        raise TypeError("Переданный объект не является (list, tuple, dict)")
Esempio n. 3
0
def correspond_selected_object(objects, table):
    """
    Функция для проверки сравневания двух джисоно валидных объектов

    :param objects: объет который проверяем, может быть типа list или dict
    :param table: объект по которому проверяем objects, может иметь меньше значений чем objects, если проверям list,
                  предпочительнее скидывать tuple (шаблон, таблица; то, как должно быть)
    :return: None или error
    """

    with allure.step('Сравниваем данные с ожидаемыми значениями'):
        error = CompareJson()(table, objects)
        if error:
            logger.attach_debug('Данные которые проверяем', objects)
            logger.attach_debug('Данные для проверки', table)
            raise MismatchError('Данные не сошлись', error)