Перво-наперво, в вашем behave.ini
, форматировании имеет значение .То есть запишите пробелы:
[behave.userdata]
url = http://some.url
Во-вторых, вместо создания объекта ApiClient в вашем /features/steps/steps.py
, вы должны создать его в вашем /features/environment.py
.Что это environment.py
?Если вы не знаете, это в основном файл, который определяет, что должно произойти до / во время / после выполнения теста.Смотрите здесь для более подробной информации.
По сути, у вас будет что-то вроде:
environment.py
from client.api_client import ApiClient
"""
The code within the following block is checked before all/any of test steps are run.
This would be a great place to instantiate any of your class objects and store them as
attributes in behave's context object for later use.
"""
def before_all(context):
# The following creates an api_calls attribute for behave's context object
context.api_calls = ApiClient(context.config.userdata['url'])
Позже, когда вы захотите использовать свой объект ApiClient, выможет сделать это так:
steps.py
from behave import *
@given('I am logged as "{user}" "{password}"')
def login(context, user, password):
context.api_calls.auth(user, password)