Как продолжить выполнение "for" l oop, когда утверждение не выполняется в структуре поведения (Python)? - PullRequest
0 голосов
/ 14 июля 2020
@then("----------------------------------")
def step_impl(context, vnf):
        some_list=[] //  list of values
        is_log_exists = False 
        for log in context:
                for key, val in log.items(): 
                        is_log_exists = all(elem in val for elem in some_list) // checking if all the element in  some_list is present in val which is also a list.
        assert is_log_exists, f"Failed"

См. Приведенный выше фрагмент кода. Как только утверждение завершилось неудачно, вместо остановки выполнения, есть ли другой способ продолжить следующую итерацию для l oop? всякий раз, когда происходит сбой утверждения, это должно отображаться в консоли, и должна начаться следующая итерация.

1 Ответ

0 голосов
/ 14 июля 2020

Добро пожаловать в Stack Overflow Madhuvanthi.

Я думаю, вы должны отслеживать сбои индивидуально, а затем создавать настраиваемое сообщение подтверждения для отображения ошибок пользователю:

@then("----------------------------------")
def step_impl(context, vnf):
    some_list=[] #  list of values
    failures = list()
    for log in context:
        for key, val in log.items(): 
            for elem in some_list():
                if val not in elem:
                    failures.append((val, elem))

    # Create an assertion message detailing why the assertion failed
    assert_msg = "The following values were not found in the corresponding element:\n"
    for val, elem in failures:
        assert_msg += "Value: {}, Element: {}\n".format(val, elem)

    # This form of the assertion allows you to pass in a custom message that will be
    # displayed only if the assertion is False
    assert len(failures) == 0, assert_msg
...