Skip to content

Commit

Permalink
Merge pull request #2205 from DSD-DBS/replace-executor-name
Browse files Browse the repository at this point in the history
chore: Replace usages of executor_name fixture with user/admin fixture
  • Loading branch information
MoritzWeber0 authored Feb 14, 2025
2 parents 1340531 + 54fdb1c commit 1602959
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 196 deletions.
55 changes: 9 additions & 46 deletions backend/tests/projects/test_projects_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import capellacollab.projects.models as projects_models
import capellacollab.projects.users.crud as projects_users_crud
import capellacollab.projects.users.models as projects_users_models
import capellacollab.users.crud as users_crud
import capellacollab.users.models as users_models
from capellacollab.permissions import models as permissions_models
from capellacollab.projects.permissions import (
Expand All @@ -24,15 +23,10 @@
)


@pytest.mark.usefixtures("user")
def test_get_internal_default_project_as_user(
client: testclient.TestClient,
db: orm.Session,
executor_name: str,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.USER
)

response = client.get("/api/v1/projects/melody-model-test")

assert response.status_code == 200
Expand All @@ -41,15 +35,10 @@ def test_get_internal_default_project_as_user(
assert response.json()["slug"] == "melody-model-test"


@pytest.mark.usefixtures("user")
def test_get_projects_as_user_only_shows_default_internal_project(
client: testclient.TestClient,
db: orm.Session,
executor_name: str,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.USER
)

response = client.get("/api/v1/projects")

assert response.status_code == 200
Expand Down Expand Up @@ -79,19 +68,16 @@ def test_get_projects_as_user_with_project(
assert data[-1]["visibility"] == "private"


@pytest.mark.usefixtures("admin")
def test_get_projects_as_admin(
client: testclient.TestClient,
db: orm.Session,
executor_name: str,
):
project = projects_crud.create_project(
db,
"test project",
visibility=projects_models.ProjectVisibility.PRIVATE,
)
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

response = client.get("/api/v1/projects")

Expand All @@ -104,19 +90,16 @@ def test_get_projects_as_admin(
assert data[-1]["visibility"] == "private"


@pytest.mark.usefixtures("user")
def test_get_internal_projects_as_user(
client: testclient.TestClient,
db: orm.Session,
executor_name: str,
):
project = projects_crud.create_project(
db,
"test project",
visibility=projects_models.ProjectVisibility.INTERNAL,
)
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.USER
)

response = client.get("/api/v1/projects")

Expand All @@ -132,11 +115,8 @@ def test_get_internal_projects_as_user(
def test_get_internal_projects_as_user_without_duplicates(
client: testclient.TestClient,
db: orm.Session,
executor_name: str,
user: users_models.DatabaseUser,
):
user = users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.USER
)
project = projects_crud.create_project(
db,
"test project",
Expand Down Expand Up @@ -167,15 +147,10 @@ def test_get_internal_projects_as_user_without_duplicates(
assert data[-1]["users"]["contributors"] == 1


@pytest.mark.usefixtures("admin")
def test_create_private_project_as_admin(
client: testclient.TestClient,
db: orm.Session,
executor_name: str,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

response = client.post(
"/api/v1/projects/",
json={
Expand All @@ -192,15 +167,11 @@ def test_create_private_project_as_admin(
assert data["visibility"] == "private"


@pytest.mark.usefixtures("admin")
def test_create_internal_project_as_admin(
client: testclient.TestClient,
db: orm.Session,
executor_name: str,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

response = client.post(
"/api/v1/projects/",
json={
Expand All @@ -218,14 +189,11 @@ def test_create_internal_project_as_admin(
assert data["visibility"] == "internal"


@pytest.mark.usefixtures("admin")
def test_update_project_as_admin(
client: testclient.TestClient,
db: orm.Session,
executor_name: str,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)
project = projects_crud.create_project(db, "new project")

assert project.slug == "new-project"
Expand Down Expand Up @@ -318,15 +286,10 @@ def test_get_project_per_role_manager(
assert len(response.json()) > 0


@pytest.mark.usefixtures("admin")
def test_get_project_per_role_admin(
client: testclient.TestClient,
executor_name: str,
db: orm.Session,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

response = client.get("/api/v1/projects/?minimum_role=administrator")
assert response.status_code == 200
assert len(response.json()) > 0
Expand Down
10 changes: 2 additions & 8 deletions backend/tests/projects/test_projects_users_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,10 @@ def test_http_exception_when_updating_permission_of_manager(
)


@pytest.mark.usefixtures("user")
def test_current_user_rights_for_internal_project(
db: orm.Session,
client: testclient.TestClient,
executor_name: str,
project: projects_models.DatabaseProject,
):
projects_crud.update_project(
Expand All @@ -122,9 +122,6 @@ def test_current_user_rights_for_internal_project(
visibility=projects_models.ProjectVisibility.INTERNAL
),
)
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.USER
)

response = client.get(
f"/api/v1/projects/{project.slug}/users/current",
Expand All @@ -135,10 +132,10 @@ def test_current_user_rights_for_internal_project(
assert response.json()["permission"] == "read"


@pytest.mark.usefixtures("user")
def test_no_user_rights_on_internal_permissions(
db: orm.Session,
client: testclient.TestClient,
executor_name: str,
project: projects_models.DatabaseProject,
):
projects_crud.update_project(
Expand All @@ -148,9 +145,6 @@ def test_no_user_rights_on_internal_permissions(
visibility=projects_models.ProjectVisibility.PRIVATE
),
)
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.USER
)

response = client.get(
f"/api/v1/projects/{project.slug}/users/current",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@
from capellacollab.projects.toolmodels.backups.runs import (
injectables as runs_injectables,
)
from capellacollab.users import crud as users_crud
from capellacollab.users import models as users_models


@pytest.fixture(name="unix_time_in_ns")
Expand Down Expand Up @@ -214,17 +212,13 @@ def get_mock_existing_pipeline_run() -> (


@mock.patch("capellacollab.core.logging.loki.fetch_logs_from_loki")
@pytest.mark.usefixtures("override_get_existing_pipeline_run_dependency")
@pytest.mark.usefixtures(
"override_get_existing_pipeline_run_dependency", "admin"
)
def test_mask_logs(
mock_fetch_logs: mock.Mock,
client: testclient.TestClient,
db: orm.Session,
executor_name: str,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

mock_fetch_logs.return_value = [
{
"values": [
Expand Down
37 changes: 5 additions & 32 deletions backend/tests/projects/toolmodels/test_toolmodel_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,14 @@
from capellacollab.projects.toolmodels import models as toolmodels_models
from capellacollab.tools import crud as tools_crud
from capellacollab.tools import models as tools_models
from capellacollab.users import crud as users_crud
from capellacollab.users import models as users_models


@pytest.mark.usefixtures("admin")
def test_rename_toolmodel_successful(
capella_model: toolmodels_models.DatabaseToolModel,
project: projects_models.DatabaseProject,
client: testclient.TestClient,
executor_name: str,
db: orm.Session,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

response = client.patch(
f"/api/v1/projects/{project.slug}/models/{capella_model.slug}",
json={
Expand All @@ -43,18 +36,13 @@ def test_rename_toolmodel_successful(
assert "new-name" in response.text


@pytest.mark.usefixtures("admin")
def test_rename_toolmodel_where_name_already_exists(
client: testclient.TestClient,
project: projects_models.DatabaseProject,
capella_model: toolmodels_models.DatabaseToolModel,
jupyter_model: toolmodels_models.DatabaseToolModel,
executor_name: str,
db: orm.Session,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

response = client.patch(
f"/api/v1/projects/{project.slug}/models/{capella_model.slug}",
json={"name": jupyter_model.name, "version_id": -1, "nature_id": -1},
Expand All @@ -64,17 +52,12 @@ def test_rename_toolmodel_where_name_already_exists(
assert response.json()["detail"]["err_code"] == "TOOLMODEL_ALREADY_EXISTS"


@pytest.mark.usefixtures("admin")
def test_update_toolmodel_order_successful(
capella_model: toolmodels_models.DatabaseToolModel,
project: projects_models.DatabaseProject,
client: testclient.TestClient,
executor_name: str,
db: orm.Session,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

response = client.patch(
f"/api/v1/projects/{project.slug}/models/{capella_model.slug}",
json={"display_order": 1},
Expand Down Expand Up @@ -169,17 +152,12 @@ def training_tool(db: orm.Session) -> tools_models.DatabaseTool:
return tools_crud.create_tool(db, tool)


@pytest.mark.usefixtures("admin")
def test_create_training_toolmodel(
training_project: projects_models.DatabaseProject,
client: testclient.TestClient,
training_tool: tools_models.DatabaseTool,
executor_name: str,
db: orm.Session,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

response = client.post(
f"/api/v1/projects/{training_project.slug}/models",
json={
Expand All @@ -193,17 +171,12 @@ def test_create_training_toolmodel(
assert "Valid Training Toolmodel" in response.text


@pytest.mark.usefixtures("admin")
def test_create_toolmodel_project_type_not_allowed(
project: projects_models.DatabaseProject,
client: testclient.TestClient,
training_tool: tools_models.DatabaseTool,
executor_name: str,
db: orm.Session,
):
users_crud.create_user(
db, executor_name, executor_name, None, users_models.Role.ADMIN
)

response = client.post(
f"/api/v1/projects/{project.slug}/models",
json={
Expand Down
Loading

0 comments on commit 1602959

Please sign in to comment.