Exemple #1
0
    def read(cls, path: Union[Path, str]) -> Config:
        if path is None:
            if cls.DEFAULT_CONFIG_FILE_PATH.exists():
                config = cls.__parse(cls.DEFAULT_CONFIG_FILE_PATH)
            else:
                return Config.empty()
        else:
            config = cls.__parse(path)

        return cls.__validate(config)
Exemple #2
0
def config(config_path):
    """Interactively create or edit configuration file"""
    config_path = Path(config_path or ConfigIO.DEFAULT_CONFIG_FILE_PATH)
    logging.debug(config_path)
    try:
        config_obj = ConfigIO.read(config_path)
    except FileNotFoundError:
        config_obj = Config.empty()

    config_obj = Configurator.update(config_obj)
    ConfigIO.write(config_obj, config_path)
    click.echo(f"Created/updated config in {config_path}")
Exemple #3
0
def test_config_with_config_file_existing(_):
    runner = CliRunner()
    config_path = "twisted.yml"
    dummy_rule_config = RuleConfig("a", enabled=False)
    with runner.isolated_filesystem():
        ConfigIO.write(Config(universal=[dummy_rule_config]), config_path)

        result = runner.invoke(main, ["config", "--config=twisted.yml"])

        assert result.exit_code == 0
        assert result.output == f"Created/updated config in {config_path}\n"
        assert (ConfigIO.read(config_path) == Config.empty()
                ), "existing config not overwritten"
Exemple #4
0
        result = runner.invoke(
            main,
            [
                "--debug",
                "check",
                f"--add-rules-from={rule_dir_1}",
                f"--add-rules-from={rule_dir_2}",
                manifest_json,
            ],
        )

        assert result.exit_code == 0


@patch.object(Configurator, "update", return_value=Config.empty())
def test_config_outputs_file(_):
    runner = CliRunner()
    with runner.isolated_filesystem():
        result = runner.invoke(main, ["config"])

        assert result.exit_code == 0
        config_path = Path("olivertwist.yml")
        assert config_path.exists
        assert result.output == f"Created/updated config in {config_path}\n"


@patch.object(Configurator, "update", return_value=Config.empty())
def test_config_with_config_file_not_existing(_):
    runner = CliRunner()
    config_path = Path("twisted.yml")