Skip to content

Commit 7ed20f0

Browse files
author
uzair-folio3
committed
comments resolved
1 parent 8856665 commit 7ed20f0

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

optimizely/helpers/condition.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,10 @@ def compare_user_version_with_target_version(self, target_version, user_version)
162162
None:
163163
- if the user version value format is not a valid semantic version.
164164
"""
165+
is_pre_release_in_target_version = self.is_pre_release_version(target_version)
166+
is_pre_release_in_user_version = self.is_pre_release_version(user_version)
167+
is_build_in_target_version = self.is_build_version(target_version)
168+
is_build_in_user_version = self.is_build_version(user_version)
165169

166170
target_version_parts = self.split_version(target_version)
167171
if target_version_parts is None:
@@ -175,14 +179,14 @@ def compare_user_version_with_target_version(self, target_version, user_version)
175179

176180
for (idx, _) in enumerate(target_version_parts):
177181
if user_version_parts_len <= idx:
178-
return 1 if self.is_pre_release_version(target_version) or self.is_build_version(target_version) else -1
182+
return 1 if is_pre_release_in_target_version or is_build_in_target_version else -1
179183
elif not user_version_parts[idx].isdigit():
180184
if user_version_parts[idx] < target_version_parts[idx]:
181-
return 1 if self.is_pre_release_version(target_version) and not \
182-
self.is_pre_release_version(user_version) else -1
185+
return 1 if is_pre_release_in_target_version and not \
186+
is_pre_release_in_user_version else -1
183187
elif user_version_parts[idx] > target_version_parts[idx]:
184-
return -1 if not self.is_pre_release_version(target_version) and \
185-
self.is_pre_release_version(user_version) else 1
188+
return -1 if not is_pre_release_in_target_version and \
189+
is_pre_release_in_user_version else 1
186190
else:
187191
user_version_part = int(user_version_parts[idx])
188192
target_version_part = int(target_version_parts[idx])
@@ -192,8 +196,8 @@ def compare_user_version_with_target_version(self, target_version, user_version)
192196
return -1
193197

194198
# check if user version contains build or pre-release and target version doesn't
195-
if (self.is_pre_release_version(user_version) and not self.is_pre_release_version(target_version)) or \
196-
(self.is_build_version(user_version) and not self.is_build_version(target_version)):
199+
if (is_pre_release_in_user_version and not is_pre_release_in_target_version) or \
200+
(is_build_in_user_version and not is_build_in_target_version):
197201
return -1
198202
return 0
199203

tests/helpers_tests/test_condition.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,8 @@ def test_compare_user_version_with_target_version_equal_to_0(self):
238238
('2.0.1', '2.0.1'),
239239
('2.9.9-beta', '2.9.9-beta'),
240240
('2.1', '2.1.0'),
241-
('2', '2.12')
241+
('2', '2.12'),
242+
('2.9', '2.9.1')
242243
]
243244
for target_version, user_version in versions:
244245
evaluator = condition_helper.CustomAttributeConditionEvaluator(

0 commit comments

Comments
 (0)