def test_apply_config_options_negative(self): config = LintConfig() # assert error on incorrect rule with self.assertRaisesRegexp(LintConfigError, "No such rule 'foo'"): config.apply_config_options(['foo.bar=1']) # no equal sign expected_msg = "'foo.bar' is an invalid configuration option. Use '<rule>.<option>=<value>'" with self.assertRaisesRegexp(LintConfigError, expected_msg): config.apply_config_options(['foo.bar']) # missing value expected_msg = "'foo.bar=' is an invalid configuration option. Use '<rule>.<option>=<value>'" with self.assertRaisesRegexp(LintConfigError, expected_msg): config.apply_config_options(['foo.bar=']) # space instead of equal sign expected_msg = "'foo.bar 1' is an invalid configuration option. Use '<rule>.<option>=<value>'" with self.assertRaisesRegexp(LintConfigError, expected_msg): config.apply_config_options(['foo.bar 1']) # no period between rule and option names expected_msg = "'foobar=1' is an invalid configuration option. Use '<rule>.<option>=<value>'" with self.assertRaisesRegexp(LintConfigError, expected_msg): config.apply_config_options(['foobar=1'])
def get_config(ctx, target, config_path, c, ignore, verbose, silent): """ Creates a LintConfig object based on a set of commandline parameters. """ try: # Config precedence: # First, load default config or config from configfile lint_config = load_config_from_path(ctx, config_path) # default to default configuration when no config file was loaded if lint_config: click.echo("Using config from {0}".format(lint_config.config_path)) else: lint_config = LintConfig() # Then process any commandline configuration flags lint_config.apply_config_options(c) # Finally, overwrite with any convenience commandline flags lint_config.apply_on_csv_string(ignore, lint_config.disable_rule) if silent: lint_config.verbosity = 0 elif verbose > 0: lint_config.verbosity = verbose # Set target lint_config.target = target return lint_config except LintConfigError as e: click.echo("Config Error: {0}".format(str(e))) ctx.exit(CONFIG_ERROR_CODE) # return CONFIG_ERROR_CODE on config error
def test_apply_config_options(self): config = LintConfig() # assert some defaults self.assertEqual(config.get_rule_option('title-max-length', 'line-length'), 72) self.assertEqual(config.get_rule_option('body-max-line-length', 'line-length'), 80) self.assertEqual(config.verbosity, 3) # change and assert changes config.apply_config_options(['general.verbosity=1', 'title-max-length.line-length=60', 'body-max-line-length.line-length=120']) self.assertEqual(config.get_rule_option('title-max-length', 'line-length'), 60) self.assertEqual(config.get_rule_option('body-max-line-length', 'line-length'), 120) self.assertEqual(config.verbosity, 1)
def get_config(ctx, target, config_path, c, extra_path, ignore, verbose, silent, debug): """ Creates a LintConfig object based on a set of commandline parameters. """ try: # Config precedence: # First, load default config or config from configfile lint_config = load_config_from_path(ctx, config_path) # default to default configuration when no config file was loaded if lint_config: if debug: click.echo("Using config from {0}".format( lint_config.config_path)) else: lint_config = LintConfig() # Then process any commandline configuration flags lint_config.apply_config_options(c) # Finally, overwrite with any convenience commandline flags lint_config.apply_on_csv_string(ignore, lint_config.disable_rule) if silent: lint_config.verbosity = 0 elif verbose > 0: lint_config.verbosity = verbose if extra_path: lint_config.extra_path = extra_path if debug: lint_config.debug = True # Set target lint_config.target = target return lint_config except LintConfigError as e: click.echo("Config Error: {0}".format(str(e))) ctx.exit(CONFIG_ERROR_CODE) # return CONFIG_ERROR_CODE on config error