@@ -150,8 +150,24 @@ def compare_user_version_with_target_version(self, index):
150
150
target_version = self .condition_data [index ][1 ]
151
151
user_version = self .attributes .get (condition_name )
152
152
153
+ if not isinstance (target_version , string_types ):
154
+ self .logger .warning (audience_logs .UNKNOWN_CONDITION_VALUE .format (self ._get_condition_json (index ), ))
155
+ return None
156
+
157
+ if not isinstance (user_version , string_types ):
158
+ self .logger .warning (
159
+ audience_logs .UNEXPECTED_TYPE .format (self ._get_condition_json (index ), type (user_version ), condition_name )
160
+ )
161
+ return None
162
+
153
163
target_version_parts = self .split_semantic_version (target_version )
164
+ if target_version_parts is None :
165
+ return None
166
+
154
167
user_version_parts = self .split_semantic_version (user_version )
168
+ if user_version_parts is None :
169
+ return None
170
+
155
171
user_version_parts_len = len (user_version_parts )
156
172
157
173
for (idx , _ ) in enumerate (target_version_parts ):
@@ -403,6 +419,10 @@ def semver_equal_evaluator(self, index):
403
419
None:
404
420
- if the user version value is not string type or is null.
405
421
"""
422
+ result = self .compare_user_version_with_target_version (index )
423
+ if result is None :
424
+ return result
425
+
406
426
return self .compare_user_version_with_target_version (index ) == 0
407
427
408
428
def semver_greater_than_evaluator (self , index ):
@@ -418,6 +438,9 @@ def semver_greater_than_evaluator(self, index):
418
438
None:
419
439
- if the user version value is not string type or is null.
420
440
"""
441
+ result = self .compare_user_version_with_target_version (index )
442
+ if result is None :
443
+ return result
421
444
return self .compare_user_version_with_target_version (index ) > 0
422
445
423
446
def semver_less_than_evaluator (self , index ):
@@ -433,6 +456,9 @@ def semver_less_than_evaluator(self, index):
433
456
None:
434
457
- if the user version value is not string type or is null.
435
458
"""
459
+ result = self .compare_user_version_with_target_version (index )
460
+ if result is None :
461
+ return result
436
462
return self .compare_user_version_with_target_version (index ) < 0
437
463
438
464
def semver_less_than_or_equal_evaluator (self , index ):
@@ -448,6 +474,9 @@ def semver_less_than_or_equal_evaluator(self, index):
448
474
None:
449
475
- if the user version value is not string type or is null.
450
476
"""
477
+ result = self .compare_user_version_with_target_version (index )
478
+ if result is None :
479
+ return result
451
480
return self .compare_user_version_with_target_version (index ) <= 0
452
481
453
482
def semver_greater_than_or_equal_evaluator (self , index ):
@@ -463,6 +492,9 @@ def semver_greater_than_or_equal_evaluator(self, index):
463
492
None:
464
493
- if the user version value is not string type or is null.
465
494
"""
495
+ result = self .compare_user_version_with_target_version (index )
496
+ if result is None :
497
+ return result
466
498
return self .compare_user_version_with_target_version (index ) >= 0
467
499
468
500
EVALUATORS_BY_MATCH_TYPE = {
0 commit comments