Bin
2025-12-16 7423b0c6e1959f30a7e8e453e953310f32ce13c6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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)