tests: update some tests with new server standards

This commit is contained in:
Gergő Jedlicska
2025-03-27 13:56:19 +01:00
parent e9bdf0ceb8
commit 09c61424d7
3 changed files with 52 additions and 39 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ from enum import Enum
class ProjectVisibility(str, Enum):
PRIVATE = "PRIVATE"
PUBLIC = "PUBLIC"
UNLISTEd = "UNLISTED"
UNLISTED = "UNLISTED"
class UserProjectsUpdatedMessageType(str, Enum):
@@ -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."""
@@ -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