python-sdk/tests/test_open_feature_evaluatio...

34 lines
1.1 KiB
Python

import pytest
from open_feature.evaluation_context.evaluation_context import EvaluationContext
from open_feature.exception.error_code import ErrorCode
from open_feature.exception.exceptions import GeneralError
from open_feature.open_feature_evaluation_context import (
api_evaluation_context,
set_api_evaluation_context,
)
def test_should_raise_an_exception_if_no_evaluation_context_set():
# Given
with pytest.raises(GeneralError) as ge:
set_api_evaluation_context(evaluation_context=None)
# Then
assert ge.value
assert ge.value.error_message == "No api level evaluation context"
assert ge.value.error_code == ErrorCode.GENERAL
def test_should_successfully_set_evaluation_context_for_api():
# Given
evaluation_context = EvaluationContext("targeting_key", {"attr1": "val1"})
# When
set_api_evaluation_context(evaluation_context)
global_evaluation_context = api_evaluation_context()
# Then
assert global_evaluation_context
assert global_evaluation_context.targeting_key == evaluation_context.targeting_key
assert global_evaluation_context.attributes == evaluation_context.attributes