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 from label_studio_sdk.data_manager import Column, Filters, Operator, Type def test_create_view(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) filters = Filters.create( Filters.AND, [ Filters.item(Column.id, Operator.GREATER_OR_EQUAL, Type.Number, Filters.value(1)), Filters.item(Column.id, Operator.LESS_OR_EQUAL, Type.Number, Filters.value(100)), ], ) view = ls.views.create(project=project.id, data=dict(title='Test View', filters=filters)) assert view.data['filters'] == { 'conjunction': 'and', 'items': [ {'filter': 'filter:tasks:id', 'operator': 'greater_or_equal', 'type': 'Number', 'value': 1}, {'filter': 'filter:tasks:id', 'operator': 'less_or_equal', 'type': 'Number', 'value': 100}, ], } def test_get_tasks_from_view(test_project_with_view): ls, project, orig_tasks, view = test_project_with_view views = ls.views.list(project=project.id) assert len(views) == 1 found_view = views[0] assert found_view.id == view.id tasks = [] for task in ls.tasks.list(view=view.id): tasks.append(task) assert len(tasks) == 5 assert tasks == sorted(orig_tasks[::2], key=lambda t: t.id, reverse=True)