Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[submodule "tests/engine_tests/engine-test-data"]
path = tests/engine_tests/engine-test-data
url = https://github.com/flagsmith/engine-test-data.git
tag = v3.3.0
branch = copilot/add-in-operator-edge-cases
10 changes: 4 additions & 6 deletions flag_engine/segments/evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,9 @@ def context_matches_condition(
)

if condition["operator"] == constants.IN:
# Guard against comparing null and boolean values to numeric strings
if any(context_value is value for value in (None, True, False)):
return False
if isinstance(segment_value := condition["value"], list):
in_values = segment_value
else:
Expand All @@ -284,12 +287,7 @@ def context_matches_condition(
except ValueError:
in_values = segment_value.split(",")
in_values = [str(value) for value in in_values]
# Guard against comparing boolean values to numeric strings.
if isinstance(context_value, int) and not (
context_value is True or context_value is False
):
context_value = str(context_value)
return context_value in in_values
return str(context_value) in in_values

condition = typing.cast(StrValueSegmentCondition, condition)

Expand Down
2 changes: 1 addition & 1 deletion tests/engine_tests/engine-test-data
Submodule engine-test-data updated 115 files