From cb161e8b988e7fbe1a4cefd1f79aa382c3a5b627 Mon Sep 17 00:00:00 2001 From: ytwei Date: Wed, 26 Aug 2026 21:29:54 +0800 Subject: [PATCH] fix(curriculum): add actionable enum assertion messages --- checks/enums/enums1.py | 12 +++++++++--- checks/enums/enums2.py | 10 ++++++++-- checks/enums/enums3.py | 8 ++++++-- checks/enums/enums4.py | 4 +++- checks/enums/enums5.py | 12 +++++++++--- checks/enums/enums6.py | 8 ++++++-- 6 files changed, 41 insertions(+), 13 deletions(-) diff --git a/checks/enums/enums1.py b/checks/enums/enums1.py index 244efe8..0ea55e4 100644 --- a/checks/enums/enums1.py +++ b/checks/enums/enums1.py @@ -1,4 +1,10 @@ -assert Color.RED.value == "red" -assert Color.BLUE.value == "blue" -assert favorite is Color.RED +assert Color.RED.value == "red", ( + f"Color.RED.value should be 'red', got {Color.RED.value!r}" +) +assert Color.BLUE.value == "blue", ( + f"Color.BLUE.value should be 'blue', got {Color.BLUE.value!r}" +) +assert favorite is Color.RED, ( + f"favorite should be Color.RED, got {favorite!r}" +) print("enums1 ok") diff --git a/checks/enums/enums2.py b/checks/enums/enums2.py index 7deb8fa..fa2a666 100644 --- a/checks/enums/enums2.py +++ b/checks/enums/enums2.py @@ -1,3 +1,9 @@ -assert [member.name for member in Status] == ["TODO", "DOING", "DONE"] -assert [member.value for member in Status] == [1, 2, 3] +assert [member.name for member in Status] == ["TODO", "DOING", "DONE"], ( + "Status names should be ['TODO', 'DOING', 'DONE'], got " + f"{[member.name for member in Status]!r}" +) +assert [member.value for member in Status] == [1, 2, 3], ( + f"Status values should be [1, 2, 3], got " + f"{[member.value for member in Status]!r}" +) print("enums2 ok") diff --git a/checks/enums/enums3.py b/checks/enums/enums3.py index 0a7be71..f292f3a 100644 --- a/checks/enums/enums3.py +++ b/checks/enums/enums3.py @@ -1,3 +1,7 @@ -assert selected_name == "HIGH" -assert selected_value == 5 +assert selected_name == "HIGH", ( + f"selected_name should be 'HIGH', got {selected_name!r}" +) +assert selected_value == 5, ( + f"selected_value should be 5, got {selected_value!r}" +) print("enums3 ok") diff --git a/checks/enums/enums4.py b/checks/enums/enums4.py index 1686e35..6bd2355 100644 --- a/checks/enums/enums4.py +++ b/checks/enums/enums4.py @@ -1,2 +1,4 @@ -assert size_codes == ["S", "M", "L"] +assert size_codes == ["S", "M", "L"], ( + f"size_codes should be ['S', 'M', 'L'], got {size_codes!r}" +) print("enums4 ok") diff --git a/checks/enums/enums5.py b/checks/enums/enums5.py index 0a6792a..71d0817 100644 --- a/checks/enums/enums5.py +++ b/checks/enums/enums5.py @@ -1,4 +1,10 @@ -assert is_terminal(TicketState.OPEN) is False -assert is_terminal(TicketState.CLOSED) is True -assert is_terminal(TicketState.CANCELLED) is True +assert is_terminal(TicketState.OPEN) is False, ( + "is_terminal(TicketState.OPEN) should be False" +) +assert is_terminal(TicketState.CLOSED) is True, ( + "is_terminal(TicketState.CLOSED) should be True" +) +assert is_terminal(TicketState.CANCELLED) is True, ( + "is_terminal(TicketState.CANCELLED) should be True" +) print("enums5 ok") diff --git a/checks/enums/enums6.py b/checks/enums/enums6.py index bd6af35..88e7c23 100644 --- a/checks/enums/enums6.py +++ b/checks/enums/enums6.py @@ -1,3 +1,7 @@ -assert Direction.NORTH.delta() == (0, -1) -assert Direction.EAST.delta() == (1, 0) +assert Direction.NORTH.delta() == (0, -1), ( + "Direction.NORTH.delta() should return (0, -1)" +) +assert Direction.EAST.delta() == (1, 0), ( + "Direction.EAST.delta() should return (1, 0)" +) print("enums6 ok")