У меня есть тестовый пример поведения Python не удается во время предварительного кода кода - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть кусок кода, как это в python3

context.execute_steps(
    """
                Given user is on the landing page
                When he clicks the LOGIN button
                And he provides the correct credential
                And clicks the login button
                Then he should be get into the main page
                """.format(
        button_color="red"
    )
)
...

И когда мне нужно было выполнить «pre-commit run --all-files» для проверки кода в git / MasterЯ получаю такой сбой:

  ..\testcase.py error: Not all arguments converted during string formatting

, который жалуется, что этот фрагмент кода не был хорош. Что я мог сделать, чтобы пройти через это?

Спасибо,

Джек

1 Ответ

0 голосов
/ 09 ноября 2019

Спасибо всем за отзывы.

1) Я пытался подать на python дело, чтобы пользователь щелкнул вкладку в браузере. Может быть 2 сценария: A) пользователь уже вошел в систему, и он может сделать щелчок напрямую. Б) Ему может понадобиться сначала войти в систему, а затем щелкнуть эту вкладку. Если это был более поздний случай, я хочу вызвать код входа в систему, который определен где-то еще, используя этот вызов context.execute_steps ().

2) Вот мой код.

@given("make sure the user log-in")
def step_given_user_has_logged_in(context):
    if context.holder.logged_in is True:
        context.logger.info("user already login.")
        return
    else:
        context.logger.info("user need to do login first.")
        context.execute_steps(
            """
                Given user is on the landing page
                When he clicks the LOGIN button
                And he provides the correct credential
                And clicks the login button
                Then he should be get into the extender main page
                """.format(button="red")
        )
        context.holder.logged_in = True
        return

на этот context.execute_steps () можно ссылаться по этой ссылке: https://behave.readthedocs.io/en/latest/api.html, и, когда я делаю предварительную фиксацию, мне выдаются такие сообщения:

testcase.py:29: error: Not all arguments converted during string formatting

Сейчас я только что понял, что могу обойтись, позвонив следующим образом:

context.execute_steps(
            """
                Given user is on the landing page
                When he clicks the LOGIN button
                And he provides the correct credential
                And clicks the login button
                Then he should be get into the extender main page
                """)

Он все еще работает для меня при входе в систему и обходит ошибку проверки перед фиксацией.

В моей среде я использую python 3.7, pre-commit версию 1.2.0, и он работал на Ubuntu 16.0.4

...