34 lines
1.1 KiB
Python
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
|