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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
| import json
|
| import pytest
|
| pytestmark = pytest.mark.django_db
|
|
| def _get_columns(business_client, label_config=None):
| r = business_client.post(
| '/api/projects/',
| data=json.dumps(dict(title='test_project1', **({'label_config': label_config} if label_config else {}))),
| content_type='application/json',
| )
|
| project1_id = r.json()['id']
| r = business_client.get(f'/api/dm/columns/?project={project1_id}')
|
| assert r.status_code == 200, r.content
| r_json = r.json()
| assert 'columns' in r_json
| return r_json['columns']
|
|
| def test_columns_api_returns_expected_ids(business_client):
| columns = _get_columns(business_client)
|
| assert [c['id'] for c in columns] == [
| 'id',
| 'inner_id',
| 'completed_at',
| 'total_annotations',
| 'cancelled_annotations',
| 'total_predictions',
| 'annotators',
| 'annotations_results',
| 'annotations_ids',
| 'predictions_score',
| 'predictions_model_versions',
| 'predictions_results',
| 'file_upload',
| 'storage_filename',
| 'created_at',
| 'updated_at',
| 'updated_by',
| 'avg_lead_time',
| 'draft_exists',
| 'data',
| ]
|
|
| def test_columns_api_annotates_default_columns_with_project_defined_false(business_client):
| columns = _get_columns(business_client)
|
| for c in columns:
| assert 'project_defined' in c
| assert c['project_defined'] is False
|
|
| def test_columns_api_annotates_config_defined_columns_with_project_defined_true(business_client):
| config_with_text_column = """
| <View>
| <Text value="$text" name="artist" />
| <View>
| <Choices name="choices_1" toName="artist">
| <Choice name="choice_1" value="1"/>
| </Choices>
| </View>
| </View>
| """
|
| columns = _get_columns(business_client, config_with_text_column)
|
| for c in columns:
| assert 'project_defined' in c
| assert c['project_defined'] == (c['id'] == 'text')
|
|