--- test_name: test_ml_backend_creation strict: false marks: - usefixtures: - django_live_url stages: - id: signup type: ref - name: stage request: data: email: test_ml_backend_creation@test.com password: 12345678 title: test_ml_backend_creation method: POST url: '{django_live_url}/user/signup' response: status_code: 302 - name: stage request: data: is_published: true label_config: title: test_ml_backend_creation method: POST url: '{django_live_url}/api/projects' response: save: json: project_pk: id status_code: 201 - name: stage request: data: project: '{project_pk}' title: My Testing ML backend url: https://test.heartex.mlbackend.com:9090 method: POST url: '{django_live_url}/api/ml' response: json: model_version: '' state: CO save: json: ml_pk: id status_code: 201 - name: stage request: method: POST url: '{django_live_url}/api/ml/{ml_pk}/train' response: status_code: 200 - name: stage request: method: GET url: '{django_live_url}/api/ml/{ml_pk}' response: json: state: CO status_code: 200 - name: check versions request: method: GET url: '{django_live_url}/api/ml/{ml_pk}/versions' response: status_code: 200 - name: stage request: headers: content-type: application/json json: url: https://test.heartex.mlbackend.com:9091 method: PATCH url: '{django_live_url}/api/ml/{ml_pk}' response: status_code: 400 - name: stage request: method: DELETE url: '{django_live_url}/api/ml/{ml_pk}' response: status_code: 204 --- test_name: test_ml_backend_multiple_creation strict: false marks: - usefixtures: - django_live_url stages: - id: signup type: ref - name: stage request: data: email: test_ml_backend_creation@test.com password: 12345678 title: test_ml_backend_creation method: POST url: '{django_live_url}/user/signup' response: status_code: 302 - name: stage request: data: is_published: true label_config: title: test_ml_backend_creation method: POST url: '{django_live_url}/api/projects' response: save: json: project_pk: id status_code: 201 - name: stage request: data: project: '{project_pk}' title: My Testing ML backend 1 url: https://test.heartex.mlbackend.com:9090 method: POST url: '{django_live_url}/api/ml' response: json: model_version: '' state: CO save: json: ml_pk1: id status_code: 201 - name: stage request: data: project: '{project_pk}' title: My Testing ML backend 2 url: https://test.heartex.mlbackend.com:9090 method: POST url: '{django_live_url}/api/ml' response: json: model_version: '' state: CO save: json: ml_pk2: id status_code: 201 - name: stage request: method: POST url: '{django_live_url}/api/ml/{ml_pk1}/train' response: status_code: 200 - name: stage request: method: POST url: '{django_live_url}/api/ml/{ml_pk2}/train' response: status_code: 200 - name: stage request: method: GET url: '{django_live_url}/api/ml/{ml_pk1}' response: json: state: CO status_code: 200 - name: stage request: method: GET url: '{django_live_url}/api/ml/{ml_pk2}' response: json: state: CO status_code: 200 - name: check versions request: method: GET url: '{django_live_url}/api/ml/{ml_pk1}/versions' response: status_code: 200 - name: check versions request: method: GET url: '{django_live_url}/api/ml/{ml_pk2}/versions' response: status_code: 200 - name: stage request: headers: content-type: application/json json: url: https://test.heartex.mlbackend.com:9091 method: PATCH url: '{django_live_url}/api/ml/{ml_pk1}' response: status_code: 400 - name: stage request: headers: content-type: application/json json: url: https://test.heartex.mlbackend.com:9091 method: PATCH url: '{django_live_url}/api/ml/{ml_pk2}' response: status_code: 400 - name: stage request: method: DELETE url: '{django_live_url}/api/ml/{ml_pk1}' response: status_code: 204 - name: stage request: method: DELETE url: '{django_live_url}/api/ml/{ml_pk2}' response: status_code: 204 # Verify model version changes every time an annotation is made when auto update is enabled --- test_name: test_ml_backend_auto_update strict: false marks: - usefixtures: - django_live_url - mock_ml_auto_update stages: - id: signup type: ref - name: signup user request: data: email: test_ml_backend_creation@test.com password: 12345678 title: test_ml_backend_creation method: POST url: '{django_live_url}/user/signup' response: status_code: 302 - name: setup project request: data: is_published: true label_config: title: test_ml_backend_creation method: POST url: '{django_live_url}/api/projects' response: save: json: project_pk: id status_code: 201 - name: import_task request: url: "{django_live_url}/api/projects/{project_pk}/tasks" json: data: text: Test example phrase method: POST headers: content-type: application/json response: status_code: 201 save: json: task_pk: id - name: add ml backend request: data: auto_update: true description: '' is_interactive: false project: '{project_pk}' title: test_ml_backend_creation url: 'http://localhost:9090' method: POST url: '{django_live_url}/api/ml' response: json: auto_update: true project: !int '{project_pk}' save: json: ml_pk: id status_code: 201 - name: connect to ml backend request: method: GET url: '{django_live_url}/api/ml?project={project_pk}' response: status_code: 200 json: - auto_update: true url: 'http://localhost:9090' model_version: version1 save: json: last_model_version: model_version - name: create_annotation request: url: "{django_live_url}/api/tasks/{task_pk}/annotations" json: lead_time: 4.134 project: !int "{project_pk}" result: - value: choices: - Negative id: wMmVN7k_47 from_name: sentiment to_name: text type: choices method: POST headers: content-type: application/json response: status_code: 201 - name: verify model version has changed request: method: GET url: '{django_live_url}/api/ml?project={project_pk}' response: status_code: 200 json: - auto_update: true url: 'http://localhost:9090' model_version: "version2" - name: verify model version has changed again request: method: GET url: '{django_live_url}/api/ml?project={project_pk}' response: status_code: 200 json: - auto_update: true url: 'http://localhost:9090' model_version: "version3" # Verify model version stays the same if auto_update is disabled, until explicitly changed --- test_name: test_ml_backend_auto_update_disabled strict: false marks: - usefixtures: - django_live_url - mock_ml_backend_auto_update_disabled stages: - id: signup type: ref - name: signup user request: data: email: test_ml_backend_creation@test.com password: 12345678 title: test_ml_backend_creation method: POST url: '{django_live_url}/user/signup' response: status_code: 302 - name: setup project request: data: is_published: true label_config: title: test_ml_backend_creation method: POST url: '{django_live_url}/api/projects' response: save: json: project_pk: id status_code: 201 - name: import_task request: url: "{django_live_url}/api/projects/{project_pk}/tasks" json: data: text: Test example phrase method: POST headers: content-type: application/json response: status_code: 201 save: json: task_pk: id - name: add ml backend request: data: auto_update: false description: '' is_interactive: false project: '{project_pk}' title: test_ml_backend_creation url: 'http://localhost:9090' method: POST url: '{django_live_url}/api/ml' response: json: auto_update: false project: !int '{project_pk}' save: json: ml_pk: id status_code: 201 - name: connect to ml backend request: method: GET url: '{django_live_url}/api/ml?project={project_pk}' response: status_code: 200 json: - auto_update: false url: 'http://localhost:9090' model_version: '' - name: create_annotation request: url: "{django_live_url}/api/tasks/{task_pk}/annotations" json: lead_time: 4.134 project: !int "{project_pk}" result: - value: choices: - Negative id: wMmVN7k_47 from_name: sentiment to_name: text type: choices method: POST headers: content-type: application/json response: status_code: 201 - name: verify model version has not changed request: method: GET url: '{django_live_url}/api/ml?project={project_pk}' response: status_code: 200 json: - auto_update: false url: 'http://localhost:9090' model_version: '' - name: check versions request: method: GET url: '{django_live_url}/api/ml/{ml_pk}/versions' response: status_code: 200 json: versions: - "1" - "2" - name: update version explicitly request: method: PATCH url: '{django_live_url}/api/ml/{ml_pk}' json: model_version: "2" url: 'http://localhost:9090' project: !int '{project_pk}' response: status_code: 200 json: model_version: "2" - name: verify model version has now changed request: method: GET url: '{django_live_url}/api/ml?project={project_pk}' response: status_code: 200 json: - auto_update: false url: 'http://localhost:9090' model_version: "2"