Coverage for compiler_admin / commands / time / lock.py: 100%
14 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-28 05:48 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-28 05:48 +0000
1from datetime import date, datetime, timedelta
3import click
5from compiler_admin.services.toggl import TogglTime
8@click.command()
9@click.option(
10 "--date",
11 "lock_date_str",
12 help="The date to lock time entries, formatted as YYYY-MM-DD. Defaults to the last day of the previous month.",
13)
14def lock(lock_date_str):
15 """Lock Toggl time entries."""
16 if lock_date_str:
17 lock_date = datetime.strptime(lock_date_str, "%Y-%m-%d")
18 else:
19 today = date.today()
20 first_day_of_current_month = today.replace(day=1)
21 lock_date = first_day_of_current_month - timedelta(days=1)
23 click.echo(f"Locking time entries on or before: {lock_date.strftime('%Y-%m-%d')}")
24 TogglTime().lock(lock_date)
25 click.echo("Done.")