Skip to content

Commit f6c1938

Browse files
committed
Parse entries with missing fields
1 parent ce30b00 commit f6c1938

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/miteclock/cli.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,9 +298,9 @@ def parse_mite_entry(raw: Dict[str, Any]) -> Entry:
298298
entry_type = Entry
299299
minutes = raw["minutes"]
300300
return entry_type(
301-
project_name=raw["project_name"],
302-
service_name=raw["service_name"],
303-
note=raw["note"],
301+
project_name=raw.get("project_name", ""),
302+
service_name=raw.get("service_name", ""),
303+
note=raw.get("note", ""),
304304
minutes=MinuteCount(minutes),
305305
created_at=datetime.strptime(
306306
re.sub(r"(\+\d\d)\:(\d\d)$", r"\1\2", raw["created_at"]), "%Y-%m-%dT%X%z"

tests/test_cli.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,18 @@ def test_parse_mite_entry(tracking, entry_type, minutes):
603603
)
604604

605605

606+
def test_parse_mite_entry_missing_fields():
607+
assert cli.parse_mite_entry(
608+
{"minutes": 5, "created_at": "2015-10-16T12:39:00+02:00"}
609+
) == cli.Entry(
610+
project_name="",
611+
service_name="",
612+
note="",
613+
minutes=cli.MinuteCount(5),
614+
created_at=datetime(2015, 10, 16, 12, 39, tzinfo=timezone(timedelta(hours=2))),
615+
)
616+
617+
606618
def test_minute_count_addition():
607619
with pytest.raises(TypeError) as excinfo:
608620
cli.MinuteCount(3) + 3

0 commit comments

Comments
 (0)