Esempio n. 1
0
 def configure_checkers_or_reports(self):
     for config in self.config.configure:
         if config.count(':') < 2:
             raise robocop.exceptions.ConfigGeneralError(
                 f"Provided invalid config: '{config}' (general pattern: <rule>:<param>:<value>)")
         rule_or_report, param, value, *values = config.split(':')
         if rule_or_report in self.rules:
             msg, checker = self.rules[rule_or_report]
             if param == 'severity':
                 self.rules[rule_or_report] = (msg.change_severity(value), checker)
             else:
                 configurable = msg.get_configurable(param)
                 if configurable is None:
                     available_conf = msg.available_configurables(checker=checker)
                     raise robocop.exceptions.ConfigGeneralError(
                         f"Provided param '{param}' for rule '{rule_or_report}' does not exist. "
                         f"Available configurable(s) for this rule:\n"
                         f"    {available_conf}"
                         )
                 checker.configure(configurable[1], configurable[2](value))
         elif rule_or_report in self.reports:
             self.reports[rule_or_report].configure(param, value, *values)
         else:
             similiar = RecommendationFinder().find_similar(rule_or_report, self.rules)
             raise robocop.exceptions.ConfigGeneralError(
                 f"Provided rule or report '{rule_or_report}' does not exist.{similiar}")
 def validate_rule_names(self, rules):
     # add rule name in form of old_name: new_name
     deprecated = {}
     for rule in chain(self.include, self.exclude):
         if rule in deprecated:  # update warning description to specific case
             print(
                 f"### DEPRECATION WARNING ###\nThe name (or ID) of the rule '{rule}' is "
                 f"renamed to '{deprecated[rule]}'. "
                 f"Update your configuration if you're using old name. "
                 f"This information will disappear in the next version (X.Y.Z)\n\n"
             )
             self.replace_in_set(self.include, rule, deprecated[rule])
             self.replace_in_set(self.exclude, rule, deprecated[rule])
         elif rule not in rules:
             similar = RecommendationFinder().find_similar(rule, rules)
             raise ConfigGeneralError(
                 f"Provided rule '{rule}' does not exist. {similar}")
Esempio n. 3
0
 def validate_rule_names(self, rules):
     deprecated = {
         'setting-name-not-capitalized': 'setting-name-not-in-title-case',
         'not-capitalized-keyword-name': 'wrong-case-in-keyword-name',
         'missing-doc-testcase': 'missing-doc-test-case'
     }
     for rule in chain(self.include, self.exclude):
         # TODO: Remove in 1.9.0
         if rule in deprecated:
             print(f"### DEPRECATION WARNING: The name of the rule '{rule}' is "
                   f"renamed to '{deprecated[rule]}' starting from Robocop 1.8.0. "
                   f"Update your configuration if you're using old name. ###\n")
             self.replace_in_set(self.include, rule, deprecated[rule])
             self.replace_in_set(self.exclude, rule, deprecated[rule])
         elif rule not in rules:
             similiar = RecommendationFinder().find_similar(rule, rules)
             raise ConfigGeneralError(f"Provided rule '{rule}' does not exist.{similiar}")
Esempio n. 4
0
 def configure_checkers_or_reports(self):
     for config in self.config.configure:
         if config.count(":") < 2:
             raise robocop.exceptions.ConfigGeneralError(
                 f"Provided invalid config: '{config}' (general pattern: <rule>:<param>:<value>)"
             )
         rule_or_report, param, value = config.split(":", maxsplit=2)
         if rule_or_report in self.rules:
             rule = self.rules[rule_or_report]
             rule.configure(param, value)
         elif rule_or_report in self.reports:
             self.reports[rule_or_report].configure(param, value)
         else:
             similar = RecommendationFinder().find_similar(
                 rule_or_report, self.rules)
             raise robocop.exceptions.ConfigGeneralError(
                 f"Provided rule or report '{rule_or_report}' does not exist. {similar}"
             )
 def test_normalize(self, name, normalized):
     rec = RecommendationFinder()
     actual = rec.normalize(name)
     assert actual == normalized
 def test_find_similiar(self, name, candidates, similar):
     rec = RecommendationFinder().find_similar(name, candidates)
     assert similar == rec