ci: add deployment workflow and automated tests
Deploy TodoList / deploy (push) Failing after 2s

This commit is contained in:
2026-07-31 09:38:39 +08:00
parent 1e142f1de4
commit 2fedb6736a
10 changed files with 713 additions and 4 deletions
+48
View File
@@ -0,0 +1,48 @@
from sqlalchemy.exc import SQLAlchemyError
from models import Todo
class FakeScalarResult:
def __init__(self, todos: list[Todo]) -> None:
self.todos = todos
def all(self) -> list[Todo]:
return self.todos
class FakeSession:
def __init__(self) -> None:
self.todo_to_return: Todo | None = None
self.added_todo: Todo | None = None
self.committed = False
self.deleted_todo: Todo | None = None
self.should_fail_commit = False
self.rolled_back = False
self.todos_to_return: list[Todo] = []
def add(self, todo: Todo) -> None:
self.added_todo = todo
todo.id = 1
todo.completion = False
def commit(self) -> None:
if self.should_fail_commit:
raise SQLAlchemyError("simulated commit failure")
self.committed = True
def get(
self,
_model: type[Todo],
_todo_id: int,
) -> Todo | None:
return self.todo_to_return
def delete(self, todo: Todo) -> None:
self.deleted_todo = todo
def rollback(self) -> None:
self.rolled_back = True
def scalars(self, _statement: object) -> FakeScalarResult:
return FakeScalarResult(self.todos_to_return)