Skip to content

Commit fc40cc5

Browse files
committed
bug on variation value - fixed
1 parent 33b599a commit fc40cc5

File tree

4 files changed

+10
-13
lines changed

4 files changed

+10
-13
lines changed

featureflags/client.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,14 @@ def _variation(self, fn: str, identifier: str, target: Target,
124124
fc = self._config.cache.get(f'flags/{identifier}')
125125
if fc:
126126
self.map_segments_from_cache(fc)
127-
method = getattr(fc, fn, None)
127+
method = getattr(fc, f'{fn}_variation', None)
128128
if method:
129129
variation = method(target)
130130
if variation is None:
131131
log.debug('No variation found')
132132
return default
133133
self._analytics.enqueue(target, fc, variation)
134-
return variation.bool()
134+
return getattr(variation, fn)(default)
135135
else:
136136
log.error("Wrong method name %s", fn)
137137
except KeyError:
@@ -140,23 +140,23 @@ def _variation(self, fn: str, identifier: str, target: Target,
140140

141141
def bool_variation(self, identifier: str, target: Target,
142142
default: bool) -> bool:
143-
return self._variation('bool_variation', identifier, target, default)
143+
return self._variation('bool', identifier, target, default)
144144

145145
def int_variation(self, identifier: str, target: Target,
146146
default: int) -> int:
147-
return self._variation('int_variation', identifier, target, default)
147+
return self._variation('int', identifier, target, default)
148148

149149
def number_variation(self, identifier: str, target: Target,
150150
default: float) -> float:
151-
return self._variation('number_variation', identifier, target, default)
151+
return self._variation('number', identifier, target, default)
152152

153153
def string_variation(self, identifier: str, target: Target,
154154
default: str) -> str:
155-
return self._variation('string_variation', identifier, target, default)
155+
return self._variation('string', identifier, target, default)
156156

157157
def json_variation(self, identifier: str, target: Target,
158158
default: Dict[str, Any]) -> Dict[str, Any]:
159-
return self._variation('number_variation', identifier, target, default)
159+
return self._variation('json', identifier, target, default)
160160

161161
def close(self):
162162
log.info('closing sdk client')

featureflags/evaluations/clause.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,6 @@ class Clauses(List[Clause]):
120120
def evaluate(self, target: Target, segments: Optional['Segments']) -> bool:
121121
for clause in self:
122122
operator = target.get_operator(clause.attribute)
123-
if operator is None:
124-
log.warning("operator not found for clause %s", clause)
125123
if not clause.evaluate(target, segments, operator):
126124
return False
127125
return True

featureflags/evaluations/segment.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ class Segment(object):
2626
additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
2727

2828
def evaluate(self, target: Target) -> bool:
29-
if not isinstance(self.included, Unset):
29+
if not isinstance(self.included, Unset) and self.included:
3030
if target.identifier in self.included:
3131
return True
3232

33-
if not isinstance(self.excluded, Unset):
33+
if not isinstance(self.excluded, Unset) and self.excluded:
3434
if target.identifier in self.excluded:
3535
return True
3636

37-
if not isinstance(self.rules, Unset):
37+
if not isinstance(self.rules, Unset) and self.rules:
3838
if self.rules.evaluate(target, None):
3939
return True
4040
return False

featureflags/evaluations/serving_rule.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,5 +110,4 @@ def get_variation_name(
110110

111111
if not isinstance(default_serve.distribution, Unset):
112112
return default_serve.distribution.get_key_name(target)
113-
114113
return None

0 commit comments

Comments
 (0)