From 75d0c1868acff4b78814cf8b7a3823471dc83816 Mon Sep 17 00:00:00 2001 From: Kim Gustyr Date: Mon, 10 Jul 2023 09:45:17 +0100 Subject: [PATCH] fix: switch `IN` operator to substring check (#181) --- flag_engine/segments/models.py | 5 +---- tests/unit/segments/test_segments_models.py | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/flag_engine/segments/models.py b/flag_engine/segments/models.py index 96925b16..05a6a356 100644 --- a/flag_engine/segments/models.py +++ b/flag_engine/segments/models.py @@ -73,10 +73,7 @@ def evaluate_modulo(self, trait_value: typing.Union[str, int, float, bool]) -> b return trait_value % divisor == remainder def evaluate_in(self, trait_value) -> bool: - try: - return str(trait_value) in self.value.split(",") - except AttributeError: - return False + return str(trait_value) in (self.value or "") class SegmentRuleModel(BaseModel): diff --git a/tests/unit/segments/test_segments_models.py b/tests/unit/segments/test_segments_models.py index afc9d989..4faa8fc2 100644 --- a/tests/unit/segments/test_segments_models.py +++ b/tests/unit/segments/test_segments_models.py @@ -64,6 +64,7 @@ (constants.REGEX, None, r"[a-z]", False), (constants.IN, "foo", "", False), (constants.IN, "foo", "foo, bar", True), + (constants.IN, "bar", "foo, bar", True), (constants.IN, "foo", "foo", True), (constants.IN, 1, "1,2,3,4", True), (constants.IN, 1, "", False),