Files
specklepy/tests/integration/client/current/test_active_user_resource.py
T
2025-01-19 20:23:21 +01:00

64 lines
2.4 KiB
Python

import pytest
from specklepy.api.client import SpeckleClient
from specklepy.core.api.inputs.project_inputs import ProjectCreateInput
from specklepy.core.api.inputs.user_inputs import UserProjectsFilter, UserUpdateInput
from specklepy.core.api.models import ResourceCollection, User
@pytest.mark.run()
class TestActiveUserResource:
def test_active_user_get(self, client: SpeckleClient):
res = client.active_user.get()
assert isinstance(res, User)
def test_active_user_update(self, client: SpeckleClient):
NEW_NAME = "Ron"
NEW_BIO = "Now I have a bio, isn't that nice!"
NEW_COMPANY = "Limited Cooperation Organization Inc"
input = UserUpdateInput(name=NEW_NAME, bio=NEW_BIO, company=NEW_COMPANY)
res = client.active_user.update(input=input)
assert isinstance(res, User)
assert res.name == NEW_NAME
assert res.bio == NEW_BIO
assert res.company == NEW_COMPANY
def test_active_user_get_projects(self, client: SpeckleClient):
existing = client.active_user.get_projects()
p1 = client.project.create(
ProjectCreateInput(name="Project 1", description=None, visibility=None)
)
p2 = client.project.create(
ProjectCreateInput(name="Project 2", description=None, visibility=None)
)
res = client.active_user.get_projects()
assert isinstance(res, ResourceCollection)
assert len(res.items) == len(existing.items) + 2
assert any(project.id == p1.id for project in res.items)
assert any(project.id == p2.id for project in res.items)
def test_active_user_get_projects_with_filter(self, client: SpeckleClient):
# Since the client may be reused for other tests,
# this test does rely on no other test creating a project
# with "Search for me" in its name
p1 = client.project.create(
ProjectCreateInput(name="Search for me!", description=None, visibility=None)
)
_ = client.project.create(
ProjectCreateInput(name="But not me!", description=None, visibility=None)
)
filter = UserProjectsFilter(search="Search for me")
res = client.active_user.get_projects(filter=filter)
assert isinstance(res, ResourceCollection)
assert len(res.items) == 1
assert res.totalCount == 1
assert res.items[0].id == p1.id