def run() -> None: """ Main method """ logger = configure_logger() parser = get_arg_parser() cli_args = parser.parse_args() log_level = wc.LOG_LEVELS[min(cli_args.verbosity, len(wc.LOG_LEVELS) - 1)] logger.setLevel(log_level) logger.debug(f"Parsed CLI arguments: {cli_args}") logger.debug(f"Path to config files: {wc.CONFIG_FILES}") if cli_args.subcmd is None: parser.print_help() return cfg = ConfigParser() cfg.read(wc.CONFIG_FILES) with StringIO() as ss: cfg.write(ss) ss.seek(0) logger.debug(f"Config content:\n{ss.read()}\nEOF") worklog_fp = os.path.expanduser(cfg.get("worklog", "path")) log = Log(worklog_fp) limits = json.loads(cfg.get("workday", "auto_break_limit_minutes")) durations = json.loads(cfg.get("workday", "auto_break_duration_minutes")) log.auto_break = AutoBreak(limits, durations) dispatch(log, parser, cli_args, cfg)
def test_report_with_tasks_and_autobreak(self): fp = self._get_testdata_fp("report_with_tasks") instance = Log(fp) instance.auto_break = AutoBreak(limits=[0], durations=[60]) date_from = datetime(2020, 1, 1, tzinfo=timezone.utc) date_to = datetime(2020, 3, 1, tzinfo=timezone.utc) instance.report(date_from, date_to) out, _ = self._capsys.readouterr() self.assertMatchSnapshot(out)