From 09c61424d7d8362f665ed6541b0b95a47995c034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20Jedlicska?= Date: Thu, 27 Mar 2025 13:56:19 +0100 Subject: [PATCH] tests: update some tests with new server standards --- src/specklepy/core/api/enums.py | 2 +- .../client/current/test_project_resource.py | 13 +++- .../client/deprecated/test_server.py | 76 ++++++++++--------- 3 files changed, 52 insertions(+), 39 deletions(-) diff --git a/src/specklepy/core/api/enums.py b/src/specklepy/core/api/enums.py index 1455b41..00935b7 100644 --- a/src/specklepy/core/api/enums.py +++ b/src/specklepy/core/api/enums.py @@ -4,7 +4,7 @@ from enum import Enum class ProjectVisibility(str, Enum): PRIVATE = "PRIVATE" PUBLIC = "PUBLIC" - UNLISTEd = "UNLISTED" + UNLISTED = "UNLISTED" class UserProjectsUpdatedMessageType(str, Enum): diff --git a/tests/integration/client/current/test_project_resource.py b/tests/integration/client/current/test_project_resource.py index 05e25d5..f0feeed 100644 --- a/tests/integration/client/current/test_project_resource.py +++ b/tests/integration/client/current/test_project_resource.py @@ -27,6 +27,7 @@ class TestProjectResource: "name, description, visibility", [ ("Very private project", "My secret project", ProjectVisibility.PRIVATE), + ("Very discoverable project", None, ProjectVisibility.UNLISTED), ("Very public project", None, ProjectVisibility.PUBLIC), ], ) @@ -48,7 +49,11 @@ class TestProjectResource: assert result.id is not None assert result.name == name assert result.description == (description or "") - assert result.visibility == visibility + # we've disabled creation of public projects for now, they fall back to unlisted + if visibility == ProjectVisibility.PUBLIC: + assert result.visibility == ProjectVisibility.UNLISTED + else: + assert result.visibility == visibility def test_project_get(self, client: SpeckleClient, test_project: Project): result = client.project.get(test_project.id) @@ -78,7 +83,11 @@ class TestProjectResource: assert updated_project.id == test_project.id assert updated_project.name == new_name assert updated_project.description == new_description - assert updated_project.visibility == new_visibility + # we've disabled creation of public projects for now, they fall back to unlisted + if new_visibility == ProjectVisibility.PUBLIC: + assert updated_project.visibility == ProjectVisibility.UNLISTED + else: + assert updated_project.visibility == new_visibility def test_project_delete(self, client: SpeckleClient): """Test deleting a project.""" diff --git a/tests/integration/client/deprecated/test_server.py b/tests/integration/client/deprecated/test_server.py index 37ac1ab..8be9c47 100644 --- a/tests/integration/client/deprecated/test_server.py +++ b/tests/integration/client/deprecated/test_server.py @@ -4,49 +4,53 @@ from specklepy.api.client import SpeckleClient from specklepy.api.models import ServerInfo -class TestServer: - @pytest.fixture(scope="module") - def token_info(self): - return { - "token": None, - "name": "super secret token", - "scopes": ["streams:read", "streams:write"], - "lifespan": 9001, - } +@pytest.fixture(scope="module") +def token_info(): + return { + "token": None, + "name": "super secret token", + "scopes": ["streams:read", "streams:write"], + "lifespan": 9001, + } - def test_server_get(self, client: SpeckleClient): - server = client.server.get() - assert isinstance(server, ServerInfo) - assert isinstance(server.frontend2, bool) +def test_server_get(client: SpeckleClient): + server = client.server.get() - def test_server_version(self, client: SpeckleClient): - version = client.server.version() + assert isinstance(server, ServerInfo) + assert isinstance(server.frontend2, bool) - assert isinstance(version, tuple) - if len(version) == 1: - assert version[0] == "dev" - else: - assert isinstance(version[0], int) - assert len(version) >= 3 - def test_server_apps(self, client: SpeckleClient): - apps = client.server.apps() +def test_server_version(client: SpeckleClient): + version = client.server.version() - assert isinstance(apps, list) - assert len(apps) >= 1 - assert any(app["name"] == "Speckle Web Manager" for app in apps) + assert isinstance(version, tuple) + if len(version) == 1: + assert version[0] == "dev" + else: + assert isinstance(version[0], int) + assert len(version) >= 3 - def test_server_create_token(self, client, token_info): - token_info["token"] = client.server.create_token( - name=token_info["name"], - scopes=token_info["scopes"], - lifespan=token_info["lifespan"], - ) - assert isinstance(token_info["token"], str) +def test_server_apps(client: SpeckleClient): + apps = client.server.apps() - def test_server_revoke_token(self, client, token_info): - revoked = client.server.revoke_token(token=token_info["token"]) + assert isinstance(apps, list) + assert len(apps) >= 1 + assert any(app["name"] == "Speckle Web Manager" for app in apps) - assert revoked is True + +def test_server_create_token(client, token_info): + token_info["token"] = client.server.create_token( + name=token_info["name"], + scopes=token_info["scopes"], + lifespan=token_info["lifespan"], + ) + + assert isinstance(token_info["token"], str) + + +def test_server_revoke_token(client, token_info): + revoked = client.server.revoke_token(token=token_info["token"]) + + assert revoked is True