---
test_name: no_annotation_no_drafts
strict: false
marks:
- usefixtures:
- django_live_url
stages:
- id: signup
type: ref
- name: stage
request:
data:
label_config:
title: Test Draft 1
method: POST
url: '{django_live_url}/api/projects'
response:
save:
json:
project_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
data:
text: Test example phrase
method: POST
url: '{django_live_url}/api/projects/{project_pk}/tasks'
response:
save:
json:
task_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
lead_time: 12.34
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
method: POST
url: '{django_live_url}/api/tasks/{task_pk}/drafts'
response:
save:
json:
draft_id: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
method: GET
url: '{django_live_url}/api/tasks/{task_pk}/drafts'
response:
status_code: 200
- name: stage
request:
method: GET
url: '{django_live_url}/api/drafts/{draft_id}/'
response:
json:
annotation: null
created_ago: !re_match 0.+minutes
lead_time: 12.34
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
user: test_suites_user@heartex.com
save:
json:
task_pk: task
status_code: 200
- name: stage
request:
headers:
content-type: application/json
json:
draft_id: '{draft_id}'
lead_time: 91.01
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
method: POST
url: '{django_live_url}/api/tasks/{task_pk}/annotations'
response:
status_code: 201
- name: stage
request:
method: GET
url: '{django_live_url}/api/drafts/{draft_id}/'
response:
status_code: 404
---
test_name: No annotation, draft exists
strict: false
marks:
- usefixtures:
- django_live_url
stages:
- id: signup
type: ref
- name: stage
request:
data:
label_config:
title: Test Draft 2
method: POST
url: '{django_live_url}/api/projects'
response:
save:
json:
project_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
data:
text: Test example phrase
method: POST
url: '{django_live_url}/api/projects/{project_pk}/tasks'
response:
save:
json:
task_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
lead_time: 12.34
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
method: POST
url: '{django_live_url}/api/tasks/{task_pk}/drafts'
response:
save:
json:
draft_id: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
lead_time: 12.34
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_B
method: PATCH
url: '{django_live_url}/api/drafts/{draft_id}'
response:
status_code: 200
- name: stage
request:
method: GET
url: '{django_live_url}/api/drafts/{draft_id}/'
response:
json:
annotation: null
created_ago: !re_match 0.+minutes
lead_time: 12.34
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_B
user: test_suites_user@heartex.com
save:
json:
task_pk: task
status_code: 200
---
test_name: Completion exists, no drafts
strict: false
marks:
- usefixtures:
- django_live_url
stages:
- id: signup
type: ref
- name: stage
request:
data:
label_config:
title: Test Draft 3
method: POST
url: '{django_live_url}/api/projects'
response:
save:
json:
project_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
data:
text: Test example phrase
method: POST
url: '{django_live_url}/api/projects/{project_pk}/tasks'
response:
save:
json:
task_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
lead_time: 34.56
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_B
method: POST
url: '{django_live_url}/api/tasks/{task_pk}/annotations'
response:
save:
json:
annotation_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
lead_time: 56.78
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
method: POST
url: '{django_live_url}/api/tasks/{task_pk}/annotations/{annotation_pk}/drafts'
response:
save:
json:
draft_id: id
status_code: 201
- name: stage
request:
method: GET
url: '{django_live_url}/api/drafts/{draft_id}'
response:
json:
created_ago: !re_match 0.+minutes
lead_time: 56.78
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
user: test_suites_user@heartex.com
save:
json:
annotation_pk: annotation
task_pk: task
status_code: 200
---
test_name: Completion exists, draft exists
strict: false
marks:
- usefixtures:
- django_live_url
stages:
- id: signup
type: ref
- name: stage
request:
data:
label_config:
title: Test Draft 4
method: POST
url: '{django_live_url}/api/projects'
response:
save:
json:
project_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
data:
text: Test example phrase
method: POST
url: '{django_live_url}/api/projects/{project_pk}/tasks'
response:
save:
json:
task_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
lead_time: 34.56
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_B
method: POST
url: '{django_live_url}/api/tasks/{task_pk}/annotations'
response:
save:
json:
annotation_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
lead_time: 56.78
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
method: POST
url: '{django_live_url}/api/tasks/{task_pk}/annotations/{annotation_pk}/drafts'
response:
save:
json:
draft_id: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
lead_time: 99.99
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_B
method: PATCH
url: '{django_live_url}/api/drafts/{draft_id}'
response:
status_code: 200
- name: stage
request:
method: GET
url: '{django_live_url}/api/drafts/{draft_id}'
response:
json:
created_ago: !re_match 0.+minutes
lead_time: 99.99
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_B
user: test_suites_user@heartex.com
save:
json:
annotation_pk: annotation
task_pk: task
status_code: 200
---
test_name: remove_other_users_draft_on_annotation_create
strict: false
marks:
- usefixtures:
- django_live_url
stages:
- id: signup
type: ref
- id: create_project
type: ref
- id: import_task
type: ref
- id: get_user_token
type: ref
- id: create_annotation
type: ref
# Test this functionality with legacy tokens, need to enable them for the org
- name: enable_legacy_api_tokens
request:
url: "{django_live_url}/api/jwt/settings"
method: POST
headers:
content-type: application/json
json:
legacy_api_tokens_enabled: true
response:
status_code: 200
- id: get_invite_url
type: ref
- id: logout
type: ref
# create second user
- name: signup_other_user
request:
url: "{django_live_url}{invite_url}"
data:
email: other_user@heartex.com
password: 12345678
method: POST
response:
status_code: 302
- name: create_draft
request:
headers:
content-type: application/json
json:
lead_time: 12.34
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
method: POST
url: '{django_live_url}/api/tasks/{task_pk}/annotations/{annotation_pk}/drafts'
# url: '{django_live_url}/api/tasks/{task_pk}/drafts'
response:
save:
json:
draft_pk: id
status_code: 201
- name: get_drafts
request:
method: GET
url: '{django_live_url}/api/tasks/{task_pk}/drafts'
response:
status_code: 200
json:
- id: !int '{draft_pk}'
- name: stage
request:
headers:
content-type: application/json
json:
result:
- from_name: label
to_name: text
type: choices
value:
choices:
- 1
method: PATCH
url: '{django_live_url}/api/annotations/{annotation_pk}'
response:
status_code: 200
- name: get_drafts
request:
headers:
authorization: "Token {user_token}"
method: GET
url: '{django_live_url}/api/tasks/{task_pk}/drafts'
response:
verify_response_with:
function: tests.utils:empty_list
status_code: 200
---
test_name: draft_permission
strict: false
marks:
- usefixtures:
- django_live_url
stages:
- id: signup
type: ref
- name: stage
request:
data:
label_config:
title: Test Draft 1
method: POST
url: '{django_live_url}/api/projects'
response:
save:
json:
project_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
data:
text: Test example phrase1
method: POST
url: '{django_live_url}/api/projects/{project_pk}/tasks'
response:
save:
json:
task_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
data:
text: Test example phrase2
method: POST
url: '{django_live_url}/api/projects/{project_pk}/tasks'
response:
save:
json:
task2_pk: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
json:
lead_time: 12.34
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
method: POST
url: '{django_live_url}/api/tasks/{task2_pk}/drafts'
response:
save:
json:
draft_id: id
status_code: 201
- name: stage
request:
headers:
content-type: application/json
method: GET
url: '{django_live_url}/api/tasks/{task2_pk}/drafts'
response:
status_code: 200
- name: stage
request:
method: GET
url: '{django_live_url}/api/drafts/{draft_id}/'
response:
json:
annotation: null
created_ago: !re_match 0.+minutes
lead_time: 12.34
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
user: test_suites_user@heartex.com
status_code: 200
- name: stage
request:
headers:
content-type: application/json
json:
draft_id: '{draft_id}'
lead_time: 91.01
result:
- from_name: text_class
to_name: text
type: choices
value:
choices:
- class_A
method: POST
url: '{django_live_url}/api/tasks/{task_pk}/annotations'
response:
status_code: 403
- name: stage
request:
method: GET
url: '{django_live_url}/api/drafts/{draft_id}/'
response:
status_code: 200