def main(time_string: List[str], config: str, create_config: bool, verbose: int): """ TIME_STRING Este es tu tiempo en lenguaje natural """ setup_logging(verbose) if config: config_file = Path(config) else: logging.info("Will try to use default configuration file config.yml") config_file = Path("config.yml") if create_config: write_config(config_file) click.echo(f"Config file generated at {str(config_file)}") return time_string = " ".join(time_string) try: configuration = load_config(config_file) except KeyError as keyError: missing_key = keyError.args[0] logging.error(f"Missing key {missing_key} in config file") raise click.Abort() try: result = convert_times(time_string, configuration) except InvalidTimeStringException: logging.error(f'"{time_string}" is not a valid time string') raise click.Abort() print(result)
def test_load_config_from_file_partial(config_file_partial_output): expected_value = LatimesConfiguration.from_dict({ "starting_timezone": "America/Mexico_City", "convert_to": [ "Colombia:America/Bogota", "Chile:America/Santiago", "Costa Rica:America/Costa_Rica", ], "output_formatting": { "time_format_string": "%H:%M", "aggregate_joiner": " $$$ ", "aggregate": False, "different_time_joiner": ", ", }, }) assert expected_value == load_config(config_file_partial_output)
def test_load_config_gets_default_values(path): expected_values = LatimesConfiguration.from_dict(deepcopy(DEFAULT_VALUES)) actual_values = load_config(path) assert actual_values == expected_values
def test_load_config_from_file_fails_missing_key(broken_config_file): with pytest.raises(KeyError): load_config(broken_config_file)