File tree Expand file tree Collapse file tree 2 files changed +29
-2
lines changed
Expand file tree Collapse file tree 2 files changed +29
-2
lines changed Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ class FlagEvaluationDetails(typing.Generic[T_co]):
4040 value : T_co
4141 variant : typing .Optional [str ] = None
4242 flag_metadata : FlagMetadata = field (default_factory = dict )
43- reason : typing .Optional [Reason ] = None
43+ reason : typing .Optional [typing . Union [ str , Reason ] ] = None
4444 error_code : typing .Optional [ErrorCode ] = None
4545 error_message : typing .Optional [str ] = None
4646
@@ -59,6 +59,6 @@ class FlagResolutionDetails(typing.Generic[U_co]):
5959 value : U_co
6060 error_code : typing .Optional [ErrorCode ] = None
6161 error_message : typing .Optional [str ] = None
62- reason : typing .Optional [Reason ] = None
62+ reason : typing .Optional [typing . Union [ str , Reason ] ] = None
6363 variant : typing .Optional [str ] = None
6464 flag_metadata : FlagMetadata = field (default_factory = dict )
Original file line number Diff line number Diff line change @@ -30,6 +30,32 @@ def test_evaluation_details_reason_should_be_a_string():
3030 assert error_code == flag_details .error_code
3131 assert error_message == flag_details .error_message
3232 assert reason == flag_details .reason
33+ assert isinstance (flag_details .reason , str )
34+
35+
36+ def test_evaluation_details_reason_can_be_arbitrary_string ():
37+ # Given
38+ flag_key = "my-flag"
39+ flag_value = 100
40+ variant = "1-hundred"
41+ flag_metadata = {}
42+ reason = "Non-standard reason"
43+ error_code = ErrorCode .GENERAL
44+ error_message = "message"
45+
46+ # When
47+ flag_details = FlagEvaluationDetails (
48+ flag_key ,
49+ flag_value ,
50+ variant ,
51+ flag_metadata ,
52+ reason ,
53+ error_code ,
54+ error_message ,
55+ )
56+
57+ # Then
58+ assert reason == flag_details .reason
3359
3460
3561def test_evaluation_details_reason_should_be_a_string_when_set ():
@@ -54,3 +80,4 @@ def test_evaluation_details_reason_should_be_a_string_when_set():
5480
5581 # Then
5682 assert Reason .STATIC == flag_details .reason # noqa: SIM300
83+ assert isinstance (flag_details .reason , str )
You can’t perform that action at this time.
0 commit comments