--- test_name: test_users strict: false marks: - usefixtures: - django_live_url stages: - id: signup type: ref - id: get_my_user type: ref - name: stage request: method: GET url: '{django_live_url}/api/users' response: status_code: 200 - name: stage request: method: GET url: '{django_live_url}/api/users/{user_pk}' response: status_code: 200 save: json: org_pk: active_organization - name: stage request: json: email: test_user@heartextest.com username: test user active_organization: !int '{org_pk}' method: POST url: '{django_live_url}/api/users' response: save: json: new_user_pk: id status_code: 201 - name: stage request: method: GET url: '{django_live_url}/api/users/{new_user_pk}' response: status_code: 200 - name: attempt_update_email_raises_405 request: url: "{django_live_url}/api/users/{new_user_pk}" json: email: test_user_new_email_change@heartextest.com method: PATCH headers: content-type: application/json response: status_code: 405 --- test_name: test_users_malicious_redirect strict: false marks: - usefixtures: - django_live_url stages: - name: malicious_signup request: url: "{django_live_url}/user/signup?next=http://malicious.com" data: email: test_second_org@heartex.com password: 12345678 method: POST response: status_code: 302 headers: location: "/" # redirect to home page rather than malicious.com - name: malicious_login request: url: "{django_live_url}/user/login?next=http://malicious.com" data: email: test_second_org@heartex.com password: 12345678 method: POST response: status_code: 302 headers: location: "/" # redirect to home page rather than malicious.com