Я использую Behave для автоматизации тестирования файла конфигурации, в рамках этого теста мне нужно заполнить различные поля в файле конфигурации недействительными и пустыми полями.Где я ввожу значения, я могу сделать это, используя схему сценария, вводя значения в примерах.Однако, когда я пытаюсь ввести пустое поле с помощью этого метода, поведение не нравится тому факту, что нет никакого значения.
Есть ли простой способ передать пустое значение из файла примеров, или мне нужно будет проверить эти условия с помощью отдельного теста поведения
feature
Scenario Outline:Misconfigured Identity Listener
Given an already stopped Identity Listener
And parameter <parameter> is configured to value <config_value>
When the Identity Listener is started
Then the identity listener process is not present on the system
And the log contains a <message> showing that the parameter is not configured
Examples: Protocols
|parameter |message |config_value|
|cache_ip_address | cache_ip_address | |
|cache_ip_address | cache_ip_address | 123.123.12 |
шаг, где я определяю конфигурациюзначение
@given('parameter {parameter} is configured to value {config_value}')
def step_impl(context, parameter, config_value):
context.parameter = parameter
context.config_value = config_value
context.identity_listener.update_config(parameter, config_value)
изменение файла конфигурации с помощью sed -i (в этом тесте я взаимодействую с linux box)
def update_config(self, param, config_value):
command = 'sudo sh -c "sed -i'
command = command + " '/" + param + "/c\\" + param + "= "+ config_value + " \\' {0}\""
command = command.format(self.config_file)
self.il_ssh.runcmd(command)
Благодаря ответу @Verv я получил это рабочее решениениже
передается пустое значение для полей, в которые я не хочу передавать значение
|parameter |message |config_value|
|cache_ip_address | cache_ip_address | empty |
Добавлен оператор if else в мой шаг конфигурации обновления
def update_config(self, param, config_value):
if config_value == "empty":
il_config = ""
else:
il_config = config_value
command = 'sudo sh -c "sed -i'
command = command + " '/" + param + "/c\\" + param + "= " + il_config + " \\' {0}\""
command = command.format(self.config_file)
self.il_ssh.runcmd(command)