У меня есть тест на поведение, который я выполняю, и, как часть утверждения, мне нужно получить данные из фрейма данных, я делаю это с использованием словарного подхода.
пример шага, который я выполняю:
@then("a new file is created with ATTRIBUTE_NAME values")
def step_impl(context):
attribute = (attribute)
context.crm_df = context.pre_processing.get_file_contents_as_df(context.crm_output)
expected = context.pre_processing.get_expected_crm_as_list(context.table, "attribute_name")
actual = dict(zip(context.crm_df.HASHED_MSISDN, context.crm_df.ATTRIBUTE_NAME))
assert all(elem in actual for elem in expected), f"actual {actual} not equal to expected {expected}"
Чтобы сделать тест более гибким, я хочу передать указанное выше жестко кодированное значение ATTRIBUTE_NAME в качестве переменной
@then("a new file is created with {attribute} values")
def step_impl(context, attribute):
attribute = (attribute)
context.crm_df = context.pre_processing.get_file_contents_as_df(context.crm_output)
expected = context.pre_processing.get_expected_crm_as_list(context.table, attribute)
actual = dict(zip(context.crm_df.HASHED_MSISDN, context.crm_df.attribute))
assert all(elem in actual for elem in expected), f"actual {actual} not equal to expected {expected}"
Однако
context.crm_df.attribute не выполняется, так как атрибут является строкой.
Как определить строковый атрибут, чтобы Словарь мог его прочитать?