diff --git a/CHANGELOG.md b/CHANGELOG.md index 979daca..f031905 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Added - Add Python 3.12 support ([#315](https://github.com/warpnet/salt-lint/pull/315)). +### Fixed +- Ignore false positive result in rule 210 ([#303](https://github.com/warpnet/salt-lint/pull/303)). + ## [0.9.2] (2023-02-09) ### Fixed - Ensure version identification adheres to [PEP440](https://peps.python.org/pep-0440/) ([!304](https://github.com/warpnet/salt-lint/issues/304)) diff --git a/saltlint/rules/YamlHasOctalValueRule.py b/saltlint/rules/YamlHasOctalValueRule.py index 2001e49..6207251 100644 --- a/saltlint/rules/YamlHasOctalValueRule.py +++ b/saltlint/rules/YamlHasOctalValueRule.py @@ -19,5 +19,12 @@ class YamlHasOctalValueRule(Rule): bracket_regex = re.compile(r"^[^:]+:\s{0,}0[0-9]{1,}\s{0,}((?={#)|(?=#)|(?=$))") + exclude_regex = re.compile(r"[ T]\d\d:\d\d(?:[: ]|$)") + def match(self, file, line): - return self.bracket_regex.search(line) + found = self.bracket_regex.search(line) + if found: + # Skip false positive result if the exclude_regex matches. + if self.exclude_regex.search(found.group(0)): + return None + return found diff --git a/tests/unit/TestYamlHasOctalValueRule.py b/tests/unit/TestYamlHasOctalValueRule.py index e03fc44..604d64c 100644 --- a/tests/unit/TestYamlHasOctalValueRule.py +++ b/tests/unit/TestYamlHasOctalValueRule.py @@ -31,9 +31,20 @@ # MAC addresses shouldn't be matched, for more information see: # https://github.com/warpnet/salt-lint/issues/202 -infoblox_remove_record: +infoblox_remove_record1: infoblox_host_record.absent: - mac: 4c:f2:d3:1b:2e:05 + +infoblox_remove_record2: + infoblox_host_record.absent: + - mac: 05:f2:d3:1b:2e:4c + +# time values should not trigger this rule +some_calendar_entry: + file.managed: + - name: /tmp/my_unit_file + - contents: | + oncalendar=Sun 18:00 ''' BAD_NUMBER_STATE = '''