test contracts
This commit is contained in:
@@ -39,6 +39,61 @@ class TaskRecord(Base):
|
||||
# @TIER: CRITICAL
|
||||
# @RELATION: DEPENDS_ON -> TaskRecord
|
||||
# @INVARIANT: Each log entry belongs to exactly one task.
|
||||
#
|
||||
# @TEST_CONTRACT: TaskLogCreate ->
|
||||
# {
|
||||
# required_fields: {
|
||||
# task_id: str,
|
||||
# timestamp: datetime,
|
||||
# level: str,
|
||||
# source: str,
|
||||
# message: str
|
||||
# },
|
||||
# optional_fields: {
|
||||
# metadata_json: str,
|
||||
# id: int
|
||||
# },
|
||||
# invariants: [
|
||||
# "task_id matches an existing TaskRecord.id"
|
||||
# ]
|
||||
# }
|
||||
#
|
||||
# @TEST_FIXTURE: basic_info_log ->
|
||||
# {
|
||||
# task_id: "00000000-0000-0000-0000-000000000000",
|
||||
# timestamp: "2026-02-26T12:00:00Z",
|
||||
# level: "INFO",
|
||||
# source: "system",
|
||||
# message: "Task initialization complete"
|
||||
# }
|
||||
#
|
||||
# @TEST_EDGE: missing_required_field ->
|
||||
# {
|
||||
# timestamp: "2026-02-26T12:00:00Z",
|
||||
# level: "ERROR",
|
||||
# source: "system",
|
||||
# message: "Missing task_id"
|
||||
# }
|
||||
#
|
||||
# @TEST_EDGE: invalid_type ->
|
||||
# {
|
||||
# task_id: "00000000-0000-0000-0000-000000000000",
|
||||
# timestamp: "2026-02-26T12:00:00Z",
|
||||
# level: 500,
|
||||
# source: "system",
|
||||
# message: "Integer level"
|
||||
# }
|
||||
#
|
||||
# @TEST_EDGE: empty_message ->
|
||||
# {
|
||||
# task_id: "00000000-0000-0000-0000-000000000000",
|
||||
# timestamp: "2026-02-26T12:00:00Z",
|
||||
# level: "DEBUG",
|
||||
# source: "system",
|
||||
# message: ""
|
||||
# }
|
||||
#
|
||||
# @TEST_INVARIANT: exact_one_task_association -> verifies: [basic_info_log, missing_required_field]
|
||||
class TaskLogRecord(Base):
|
||||
__tablename__ = "task_logs"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user