| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -80,7 +80,7 @@ def _check_string_not_empty(value, name, operation): | |||
| 80 | 80 | return True | |
| 81 | 81 | ||
| 82 | 82 | ||
| 83 | - def _check_string_matches(value, operation, pattern): | ||
| 83 | + def _check_string_matches(value, operation, pattern, name): | ||
| 84 | 84 | """ | |
| 85 | 85 | Check if value is adhere to a regular expression passed. | |
| 86 | 86 | ||
@@ -93,14 +93,14 @@ def _check_string_matches(value, operation, pattern): | |||
| 93 | 93 | :return: The result of validation | |
| 94 | 94 | :rtype: True|False | |
| 95 | 95 | """ | |
| 96 | - if not re.match(pattern, value): | ||
| 96 | + if re.search(pattern, value) is None or re.search(pattern, value).group() != value: | ||
| 97 | 97 | _LOGGER.error( | |
| 98 | 98 | '%s: you passed %s, event_type must ' + | |
| 99 | 99 | 'adhere to the regular expression %s. ' + | |
| 100 | - 'This means an event name must be alphanumeric, cannot be more ' + | ||
| 100 | + 'This means %s must be alphanumeric, cannot be more ' + | ||
| 101 | 101 | 'than 80 characters long, and can only include a dash, underscore, ' + | |
| 102 | 102 | 'period, or colon as separators of alphanumeric characters.', | |
| 103 | - operation, value, pattern | ||
| 103 | + operation, value, pattern, name | ||
| 104 | 104 | ) | |
| 105 | 105 | return False | |
| 106 | 106 | return True | |
@@ -323,7 +323,7 @@ def validate_event_type(event_type): | |||
| 323 | 323 | if (not _check_not_null(event_type, 'event_type', 'track')) or \ | |
| 324 | 324 | (not _check_is_string(event_type, 'event_type', 'track')) or \ | |
| 325 | 325 | (not _check_string_not_empty(event_type, 'event_type', 'track')) or \ | |
| 326 | - (not _check_string_matches(event_type, 'track', EVENT_TYPE_PATTERN)): | ||
| 326 | + (not _check_string_matches(event_type, 'track', EVENT_TYPE_PATTERN, 'an event name')): | ||
| 327 | 327 | return None | |
| 328 | 328 | return event_type | |
| 329 | 329 | ||
@@ -591,10 +591,9 @@ def validate_flag_sets(flag_sets, method_name): | |||
| 591 | 591 | flag_set = _remove_empty_spaces(flag_set, 'flag set', method_name) | |
| 592 | 592 | flag_set = _convert_str_to_lower(flag_set, 'flag set', method_name) | |
| 593 | 593 | ||
| 594 | - if re.search(_FLAG_SETS_REGEX, flag_set) is None or re.search(_FLAG_SETS_REGEX, flag_set).group() != flag_set: | ||
| 595 | - _LOGGER.warning("%s: you passed %s, flag set must adhere to the regular expressions %s. This means a flag set must start with a letter, be in lowercase, alphanumeric and have a max length of 50 characteres. %s was discarded.", flag_set, _FLAG_SETS_REGEX, flag_set) | ||
| 594 | + if not _check_string_matches(flag_set, method_name, _FLAG_SETS_REGEX, 'a flag set'): | ||
| 596 | 595 | continue | |
| 597 | 596 | ||
| 598 | - sanitized_flag_sets.add(flag_set.strip()) | ||
| 597 | + sanitized_flag_sets.add(flag_set) | ||
| 599 | 598 | ||
| 600 | 599 | return sorted(list(sanitized_flag_sets)) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -73,8 +73,7 @@ def get_flag_set(self, flag_set): | |||
| 73 | 73 | :rtype: list(str) | |
| 74 | 74 | """ | |
| 75 | 75 | with self._lock: | |
| 76 | - if self.flag_set_exist(flag_set): | ||
| 77 | - return self.sets_feature_flag_map[flag_set] | ||
| 76 | + return self.sets_feature_flag_map.get(flag_set) | ||
| 78 | 77 | ||
| 79 | 78 | def add_flag_set(self, flag_set): | |
| 80 | 79 | """ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -666,10 +666,10 @@ def test_track(self, mocker): | |||
| 666 | 666 | assert _logger.error.mock_calls == [ | |
| 667 | 667 | mocker.call("%s: you passed %s, event_type must adhere to the regular " | |
| 668 | 668 | "expression %s. This means " | |
| 669 | - "an event name must be alphanumeric, cannot be more than 80 " | ||
| 669 | + "%s must be alphanumeric, cannot be more than 80 " | ||
| 670 | 670 | "characters long, and can only include a dash, underscore, " | |
| 671 | 671 | "period, or colon as separators of alphanumeric characters.", | |
| 672 | - 'track', '@@', '^[a-zA-Z0-9][-_.:a-zA-Z0-9]{0,79}$') | ||
| 672 | + 'track', '@@', '^[a-zA-Z0-9][-_.:a-zA-Z0-9]{0,79}$', 'an event name') | ||
| 673 | 673 | ] | |
| 674 | 674 | ||
| 675 | 675 | _logger.reset_mock() | |
@@ -1074,6 +1074,33 @@ def _configs(treatment): | |||
| 1074 | 1074 | ) | |
| 1075 | 1075 | ] | |
| 1076 | 1076 | ||
| 1077 | + def test_flag_sets_validation(self): | ||
| 1078 | + """Test sanitization for flag sets.""" | ||
| 1079 | + flag_sets = input_validator.validate_flag_sets([' set1', 'set2 ', 'set3'], 'method') | ||
| 1080 | + assert sorted(flag_sets) == ['set1', 'set2', 'set3'] | ||
| 1081 | + | ||
| 1082 | + flag_sets = input_validator.validate_flag_sets(['1set', '_set2'], 'method') | ||
| 1083 | + assert flag_sets == ['1set'] | ||
| 1084 | + | ||
| 1085 | + flag_sets = input_validator.validate_flag_sets(['Set1', 'SET2'], 'method') | ||
| 1086 | + assert sorted(flag_sets) == ['set1', 'set2'] | ||
| 1087 | + | ||
| 1088 | + flag_sets = input_validator.validate_flag_sets(['se\t1', 's/et2', 's*et3', 's!et4', 'se@t5', 'se#t5', 'se$t5', 'se^t5', 'se%t5', 'se&t5'], 'method') | ||
| 1089 | + assert flag_sets == [] | ||
| 1090 | + | ||
| 1091 | + flag_sets = input_validator.validate_flag_sets(['set4', 'set1', 'set3', 'set1'], 'method') | ||
| 1092 | + assert sorted(flag_sets) == ['set1', 'set3', 'set4'] | ||
| 1093 | + | ||
| 1094 | + flag_sets = input_validator.validate_flag_sets(['w' * 50, 's' * 51], 'method') | ||
| 1095 | + assert flag_sets == ['w' * 50] | ||
| 1096 | + | ||
| 1097 | + flag_sets = input_validator.validate_flag_sets('set1', 'method') | ||
| 1098 | + assert flag_sets == [] | ||
| 1099 | + | ||
| 1100 | + flag_sets = input_validator.validate_flag_sets([12, 33], 'method') | ||
| 1101 | + assert flag_sets == [] | ||
| 1102 | + | ||
| 1103 | + | ||
| 1077 | 1104 | class ManagerInputValidationTests(object): #pylint: disable=too-few-public-methods | |
| 1078 | 1105 | """Manager input validation test cases.""" | |
| 1079 | 1106 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments