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

1from datetime import date, datetime, timedelta 

2 

3import click 

4 

5from compiler_admin.services.toggl import TogglTime 

6 

7 

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) 

22 

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.")