From 46c567d80c4776841d8b1fca63e719662f58cb84 Mon Sep 17 00:00:00 2001 From: Berry den Hartog <38954346+berrydenhartog@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:35:55 +0000 Subject: [PATCH] Remove demo mode --- .vscode/launch.json | 2 +- BUILD.md | 4 +- amt/api/routes/root.py | 2 +- amt/core/db.py | 41 +-------------- amt/core/types.py | 2 +- amt/services/tasks.py | 4 -- compose.yml | 2 +- tests/core/test_db.py | 79 ---------------------------- tests/services/test_tasks_service.py | 1 - 9 files changed, 7 insertions(+), 130 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 6ca641f1..e78cc94f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -20,7 +20,7 @@ "PYTHONPATH": "${workspaceFolder}", "DEBUG": "True", "AUTO_CREATE_SCHEMA": "True", - "ENVIRONMENT": "demo", + "ENVIRONMENT": "local", "LOGGING_LEVEL": "DEBUG" } }, diff --git a/BUILD.md b/BUILD.md index 91ba9716..d189ae6a 100644 --- a/BUILD.md +++ b/BUILD.md @@ -24,9 +24,9 @@ poetry run python -m uvicorn amt.main:app --log-level warning ``` ### Suggested development ENVIRONMENT settings -To use a demo environment during local development, you can use the following environment options. +To use a development environment during local development, you can use the following environment options. ```shell -export ENVIRONMENT=demo AUTO_CREATE_SCHEMA=true +export AUTO_CREATE_SCHEMA=true ``` diff --git a/amt/api/routes/root.py b/amt/api/routes/root.py index 22935c10..b965b4f4 100644 --- a/amt/api/routes/root.py +++ b/amt/api/routes/root.py @@ -10,4 +10,4 @@ @router.get("/") async def base() -> RedirectResponse: - return RedirectResponse("/pages/") + return RedirectResponse("/projects/") diff --git a/amt/core/db.py b/amt/core/db.py index 24bbaff1..846a6ee0 100644 --- a/amt/core/db.py +++ b/amt/core/db.py @@ -1,11 +1,9 @@ import logging from sqlalchemy.engine import Engine -from sqlmodel import Session, SQLModel, create_engine, select, update +from sqlmodel import Session, SQLModel, create_engine, select from amt.core.config import get_settings -from amt.enums.status import Status -from amt.models import Task, User logger = logging.getLogger(__name__) @@ -29,17 +27,6 @@ def check_db() -> None: logger.info("Finish Checking database connection") -def remove_old_demo_objects(session: Session) -> None: - task = session.exec(select(Task).where(Task.title == "First task")).first() - if task: - session.delete(task) - session.exec(update(Task).values(status_id=None, user_id=None)) # type: ignore - user = session.exec(select(User).where(User.name == "Robbert")).first() - if user: - session.delete(user) - session.commit() - - def init_db() -> None: logger.info("Initializing database") @@ -47,30 +34,4 @@ def init_db() -> None: logger.info("Creating database schema") SQLModel.metadata.create_all(get_engine()) - with Session(get_engine()) as session: # pragma: no cover - if get_settings().ENVIRONMENT == "demo": - logger.info("Creating demo data") - remove_old_demo_objects(session) - add_demo_users(session, ["default user"]) - add_demo_tasks(session, Status.TODO, 3) logger.info("Finished initializing database") - - -def add_demo_users(session: Session, user_names: list[str]) -> None: - for user_name in user_names: - user = session.exec(select(User).where(User.name == user_name)).first() - if not user: - session.add(User(name=user_name, avatar=None)) - session.commit() - - -def add_demo_tasks(session: Session, status: Status, number_of_tasks: int) -> None: - for index in range(1, number_of_tasks + 1): - title = "Example task " + str(index) - task = session.exec(select(Task).where(Task.title == title)).first() - if not task: - session.add( - Task(title=title, description="Example description " + str(index), sort_order=index, status_id=status) - ) - session.exec(update(Task).values(status_id=status)) # type: ignore - session.commit() diff --git a/amt/core/types.py b/amt/core/types.py index a18f4139..8cff6274 100644 --- a/amt/core/types.py +++ b/amt/core/types.py @@ -1,6 +1,6 @@ from typing import Literal # TODO(berry): make enums and convert to types -EnvironmentType = Literal["local", "production", "demo"] +EnvironmentType = Literal["local", "production"] LoggingLevelType = Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] DatabaseSchemaType = Literal["sqlite", "postgresql", "mysql", "oracle"] diff --git a/amt/services/tasks.py b/amt/services/tasks.py index 1fe335a8..2d47c76e 100644 --- a/amt/services/tasks.py +++ b/amt/services/tasks.py @@ -68,10 +68,6 @@ def move_task( if not isinstance(status_id, int): raise TypeError("status_id must be an integer") # pragma: no cover - # assign the task to the current user - if status_id > 1: - task.user_id = 1 - # update the status for the task (this may not be needed if the status has not changed) task.status_id = status_id diff --git a/compose.yml b/compose.yml index c4d78f40..bcfa3a73 100644 --- a/compose.yml +++ b/compose.yml @@ -14,7 +14,7 @@ services: - path: prod.env required: true environment: - - ENVIRONMENT=demo + - ENVIRONMENT=local ports: - 8070:8000 healthcheck: diff --git a/tests/core/test_db.py b/tests/core/test_db.py index 33e32149..054362c0 100644 --- a/tests/core/test_db.py +++ b/tests/core/test_db.py @@ -4,18 +4,10 @@ import pytest from amt.core.db import ( - add_demo_tasks, - add_demo_users, check_db, - remove_old_demo_objects, ) -from amt.enums.status import Status -from amt.models import Task, User from sqlmodel import Session, select -from tests.constants import default_task, default_user -from tests.database_test_utils import DatabaseTestUtils - logger = logging.getLogger(__name__) @@ -29,74 +21,3 @@ def test_check_database(monkeypatch: pytest.MonkeyPatch, tmp_path: Path): assert Session.exec.call_args is not None assert str(select(1)) == str(Session.exec.call_args.args[0]) Session.exec = org_exec - - -def test_remove_old_demo_objects(db: DatabaseTestUtils): - org_delete = db.get_session().delete - db_session = db.get_session() - db_session.delete = MagicMock() - - user = User(name="Robbert", avatar=None) - task = Task(title="First task", description="This is the first task", sort_order=1, status_id=Status.TODO) - db.given([user, task]) - - remove_old_demo_objects(db.get_session()) - assert db_session.delete.call_count == 2 - - db.get_session().delete = org_delete - - -def test_remove_old_demo_objects_nothing_to_delete(db: DatabaseTestUtils): - org_delete = db.get_session().delete - db_session = db.get_session() - db_session.delete = MagicMock() - - remove_old_demo_objects(db.get_session()) - assert db_session.delete.call_count == 0 - - db.get_session().delete = org_delete - - -def test_add_demo_user(db: DatabaseTestUtils): - user_names = [default_user().name] - add_demo_users(db.get_session(), user_names) - assert db.exists(User, User.name, user_names[0]) - - -def test_add_demo_user_nothing_to_add(db: DatabaseTestUtils): - db.given([default_user()]) - - orig_add = db.get_session().add - db_session = db.get_session() - db_session.add = MagicMock() - - add_demo_users(db.get_session(), [default_user().name]) - - assert db_session.add.call_count == 0 - - db.get_session().add = orig_add - - -def test_add_demo_tasks(db: DatabaseTestUtils): - add_demo_tasks(db.get_session(), Status.TODO, 3) - assert db.exists(Task, Task.title, "Example task 1") - assert db.exists(Task, Task.title, "Example task 2") - assert db.exists(Task, Task.title, "Example task 3") - - -def test_add_demo_tasks_nothing_to_add(db: DatabaseTestUtils): - db.given( - [ - default_task(title="Example task 1"), - default_task(title="Example task 2"), - default_task(title="Example task 3"), - ] - ) - - orig_add = db.get_session().add - db_session = db.get_session() - db_session.add = MagicMock() - - add_demo_tasks(db.get_session(), Status.TODO, 3) - assert db_session.add.call_count == 0 - db.get_session().add = orig_add diff --git a/tests/services/test_tasks_service.py b/tests/services/test_tasks_service.py index 3470799b..d27aa94b 100644 --- a/tests/services/test_tasks_service.py +++ b/tests/services/test_tasks_service.py @@ -130,7 +130,6 @@ def test_move_task(tasks_service_with_mock: TasksService, mock_tasks_repository: mock_tasks_repository.find_by_id(1).sort_order = 0 tasks_service_with_mock.move_task(1, 2) assert mock_tasks_repository.find_by_id(1).sort_order == 10 - assert mock_tasks_repository.find_by_id(1).user_id == 1 # test moving to todo mock_tasks_repository.reset()