import pytest from label_studio.tests.sdk.common import LABEL_CONFIG_AND_TASKS pytestmark = pytest.mark.django_db from label_studio_sdk.client import LabelStudio def test_start_and_get_project(django_live_url, business_client): ls = LabelStudio(base_url=django_live_url, api_key=business_client.api_key) p = ls.projects.create(title='New Project', label_config=LABEL_CONFIG_AND_TASKS['label_config']) project = ls.projects.get(id=p.id) assert project assert project.title == 'New Project' ls.projects.update(id=project.id, title='Updated Project') project = ls.projects.get(id=p.id) assert project.title == 'Updated Project' def test_delete_project(django_live_url, business_client): ls = LabelStudio(base_url=django_live_url, api_key=business_client.api_key) p = ls.projects.create(title='New Project', label_config=LABEL_CONFIG_AND_TASKS['label_config']) project = ls.projects.get(id=p.id) ls.projects.delete(id=project.id) any_project_found = False for project in ls.projects.list(): any_project_found = True assert not any_project_found def test_list_projects_with_params(django_live_url, business_client): ls = LabelStudio(base_url=django_live_url, api_key=business_client.api_key) ls.projects.create(title='Project 1', label_config=LABEL_CONFIG_AND_TASKS['label_config']) ls.projects.create(title='Project 2', label_config=LABEL_CONFIG_AND_TASKS['label_config']) projects = list(ls.projects.list()) assert len(projects) == 2 assert projects[0].title == 'Project 2' assert projects[1].title == 'Project 1' projects = list(ls.projects.list(filter='pinned_only')) assert not projects projects = list(ls.projects.list(include='id,title,pinned_at,created_at,created_by')) assert projects[0].pinned_at is None assert projects[0].created_at is not None assert projects[0].created_by.email == business_client.user.email