32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
import contextlib
|
|
|
|
from behave import given, when
|
|
|
|
|
|
@given('a {flag_type}-flag with key "{flag_key}" and a default value "{default_value}"')
|
|
def step_impl_flag(context, flag_type: str, flag_key, default_value):
|
|
if default_value.lower() == "true" or default_value.lower() == "false":
|
|
default_value = bool(default_value)
|
|
try:
|
|
default_value = int(default_value)
|
|
except ValueError:
|
|
with contextlib.suppress(ValueError):
|
|
default_value = float(default_value)
|
|
context.flag = (flag_type, flag_key, default_value)
|
|
|
|
|
|
@when("the flag was evaluated with details")
|
|
def step_impl_evaluation(context):
|
|
client = context.client
|
|
flag_type, key, default_value = context.flag
|
|
if flag_type.lower() == "string":
|
|
context.evaluation = client.get_string_details(key, default_value)
|
|
elif flag_type.lower() == "boolean":
|
|
context.evaluation = client.get_boolean_details(key, default_value)
|
|
elif flag_type.lower() == "object":
|
|
context.evaluation = client.get_object_details(key, default_value)
|
|
elif flag_type.lower() == "float":
|
|
context.evaluation = client.get_float_details(key, default_value)
|
|
elif flag_type.lower() == "integer":
|
|
context.evaluation = client.get_integer_details(key, default_value)
|