Beispiel #1
0
def cli(ctx: click.Context, verbose: bool = False,
        no_version_check: bool = False, change_dir: str = None,
        no_log_file: bool = False, log_file: str = "chaostoolkit.log",
        log_format: str = "string", settings: str = CHAOSTOOLKIT_CONFIG_PATH,
        log_prefix: str = None
        ):

    if no_log_file:
        configure_logger(
            verbose=verbose, log_format=log_format,
            context_id=str(uuid.uuid4()), log_prefix=log_prefix)
    else:
        configure_logger(
            verbose=verbose, log_file=log_file, log_format=log_format,
            context_id=str(uuid.uuid4()), log_prefix=log_prefix)

    subcommand = ctx.invoked_subcommand

    # make it nicer for going through the log file
    logger.debug("#" * 79)
    logger.debug("Running command '{}'".format(subcommand))

    ctx.obj = {}
    ctx.obj["settings_path"] = click.format_filename(settings)
    logger.debug("Using settings file '{}'".format(ctx.obj["settings_path"]))

    if not no_version_check:
        check_newer_version(command=subcommand)

    if change_dir:
        logger.warning("Moving to {d}".format(d=change_dir))
        os.chdir(change_dir)
Beispiel #2
0
def cli(ctx: click.Context, verbose: bool=False, no_version_check: bool=False,
        change_dir: str=None, no_log_file: bool=False,
        log_file: str="chaostoolkit.log"):
    if verbose:
        logzero.loglevel(logging.DEBUG, update_custom_handlers=False)
        fmt = "%(color)s[%(asctime)s %(levelname)s] "\
              "[%(module)s:%(lineno)d]%(end_color)s %(message)s"
    else:
        logzero.loglevel(logging.INFO, update_custom_handlers=False)
        fmt = "%(color)s[%(asctime)s %(levelname)s]%(end_color)s %(message)s"

    if not no_log_file:
        # let's ensure we log at DEBUG level
        logger.setLevel(logging.DEBUG)
        logzero.logfile(
            click.format_filename(log_file), mode='a',
            loglevel=logging.DEBUG)

    logzero.formatter(
        formatter=logzero.LogFormatter(fmt=fmt, datefmt="%Y-%m-%d %H:%M:%S"),
        update_custom_handlers=False)

    subcommand = ctx.invoked_subcommand

    # make it nicer for going through the log file
    logger.debug("#" * 79)
    logger.debug("Running command '{}'".format(subcommand))

    if not no_version_check:
        check_newer_version(command=subcommand)

    if change_dir:
        logger.warning("Moving to {d}".format(d=change_dir))
        os.chdir(change_dir)
Beispiel #3
0
def test_version_is_not_newer(requests):
    requests.get.return_value = FakeResponse(
        200,
        "http://someplace/releases/tags/{t}".format(t=__version__)
    )

    latest_version = check_newer_version()
    assert latest_version is None
Beispiel #4
0
def test_version_is_not_newer(requests):
    requests.get.return_value = FakeResponse(
        200, "https://releases.chaostoolkit.org/latest", {
            "version": __version__,
            "up_to_date": True
        })

    latest_version = check_newer_version(command="init")
    assert latest_version is None
Beispiel #5
0
def test_version_is_newer(requests):
    newer_version = semver.bump_minor(__version__)
    requests.get.return_value = FakeResponse(
        200,
        "http://someplace/releases/tags/{t}".format(t=newer_version)
    )

    latest_version = check_newer_version()
    assert latest_version == newer_version
Beispiel #6
0
def cli(ctx: click.Context,
        verbose: bool = False,
        no_version_check: bool = False,
        change_dir: str = None,
        no_log_file: bool = False,
        log_file: str = "chaostoolkit.log",
        settings: str = CHAOSTOOLKIT_CONFIG_PATH):
    if verbose:
        logzero.loglevel(logging.DEBUG, update_custom_handlers=False)
        fmt = "%(color)s[%(asctime)s %(levelname)s] "\
              "[%(module)s:%(lineno)d]%(end_color)s %(message)s"
    else:
        logzero.loglevel(logging.INFO, update_custom_handlers=False)
        fmt = "%(color)s[%(asctime)s %(levelname)s]%(end_color)s %(message)s"

    if not no_log_file:
        # let's ensure we log at DEBUG level
        logger.setLevel(logging.DEBUG)
        logzero.logfile(click.format_filename(log_file),
                        mode='a',
                        loglevel=logging.DEBUG)

    colors = logzero.LogFormatter.DEFAULT_COLORS.copy()
    colors[logging.CRITICAL] = logzero.ForegroundColors.RED
    logzero.formatter(formatter=logzero.LogFormatter(
        fmt=fmt, datefmt="%Y-%m-%d %H:%M:%S", colors=colors),
                      update_custom_handlers=False)

    subcommand = ctx.invoked_subcommand

    # make it nicer for going through the log file
    logger.debug("#" * 79)
    logger.debug("Running command '{}'".format(subcommand))

    ctx.obj = {}
    ctx.obj["settings_path"] = click.format_filename(settings)
    logger.debug("Using settings file '{}'".format(ctx.obj["settings_path"]))

    if not no_version_check:
        check_newer_version(command=subcommand)

    if change_dir:
        logger.warning("Moving to {d}".format(d=change_dir))
        os.chdir(change_dir)
Beispiel #7
0
def test_version_is_newer(requests):
    newer_version = semver.bump_minor(__version__)
    requests.get.return_value = FakeResponse(
        200,
        "http://someplace//usage/latest/",
        {"version": __version__, "up_to_date": False}
    )

    latest_version = check_newer_version(command="init")
    assert latest_version == __version__
Beispiel #8
0
def cli(verbose: bool = False,
        no_version_check: bool = False,
        change_dir: str = None):
    if verbose:
        logzero.loglevel(logging.DEBUG, update_custom_handlers=True)
        fmt = "%(color)s[%(asctime)s %(levelname)s] "\
              "[%(module)s:%(lineno)d]%(end_color)s %(message)s"
    else:
        logzero.loglevel(logging.INFO, update_custom_handlers=True)
        fmt = "%(color)s[%(asctime)s %(levelname)s]%(end_color)s %(message)s"

    logzero.formatter(formatter=logzero.LogFormatter(
        fmt=fmt, datefmt="%Y-%m-%d %H:%M:%S"),
                      update_custom_handlers=True)

    if not no_version_check:
        check_newer_version()

    if change_dir:
        logger.warning("Moving to {d}".format(d=change_dir))
        os.chdir(change_dir)