From 92553f3b39dd811f7ea34b8ebfd1a9592d7b6347 Mon Sep 17 00:00:00 2001 From: richard-dds Date: Tue, 21 Aug 2018 10:44:36 -0400 Subject: [PATCH] Add Workspaces.get_many --- atst/domain/workspaces.py | 5 +++++ atst/routes/workspaces.py | 7 ++++--- tests/domain/test_workspaces.py | 15 +++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/atst/domain/workspaces.py b/atst/domain/workspaces.py index cd161267..b0f8819c 100644 --- a/atst/domain/workspaces.py +++ b/atst/domain/workspaces.py @@ -47,6 +47,11 @@ class Workspaces(object): return workspace + @classmethod + def get_many(cls, user): + workspaces = db.session.query(Workspace).join(WorkspaceRole).filter(WorkspaceRole.user == user).all() + return workspaces + class Projects(object): diff --git a/atst/routes/workspaces.py b/atst/routes/workspaces.py index 40be4aee..d721eb58 100644 --- a/atst/routes/workspaces.py +++ b/atst/routes/workspaces.py @@ -15,13 +15,14 @@ def workspace(): @bp.route("/workspaces") def workspaces(): - return render_template("workspaces.html", page=5, workspaces=Workspaces.get_many()) + workspaces = Workspaces.get_many(g.current_user) + return render_template("workspaces.html", page=5, workspaces=workspaces) @bp.route("/workspaces//projects") def workspace_projects(workspace_id): - projects = Projects.get_many(workspace_id) - return render_template("workspace_projects.html", projects=projects) + workspace = Workspaces.get(g.current_user, workspace_id) + return render_template("workspace_projects.html", workspace=workspace) @bp.route("/workspaces//members") diff --git a/tests/domain/test_workspaces.py b/tests/domain/test_workspaces.py index abdd2cca..2a406f39 100644 --- a/tests/domain/test_workspaces.py +++ b/tests/domain/test_workspaces.py @@ -54,3 +54,18 @@ def test_workspaces_get_ensures_user_is_in_workspace(): with pytest.raises(UnauthorizedError): Workspaces.get(outside_user, workspace.id) + + +def test_workspaces_get_many_with_no_workspaces(): + workspaces = Workspaces.get_many(UserFactory.build()) + assert workspaces == [] + + +def test_workspaces_get_many_returns_a_users_workspaces(): + user = UserFactory.create() + users_workspace = Workspaces.create(RequestFactory.create(creator=user)) + + # random workspace + Workspaces.create(RequestFactory.create()) + + assert Workspaces.get_many(user) == [users_workspace]