|
5 | 5 | import pytest
|
6 | 6 |
|
7 | 7 | from landoapi.models.storage import db as _db
|
8 |
| -from landoapi.models.landing import (Landing, TRANSPLANT_JOB_STARTED) |
| 8 | +from landoapi.models.landing import ( |
| 9 | + Landing, TRANSPLANT_JOB_STARTED, TRANSPLANT_JOB_FINISHED |
| 10 | +) |
9 | 11 |
|
10 | 12 | from tests.canned_responses.phabricator.revisions import *
|
11 | 13 | from tests.canned_responses.lando_api.revisions import *
|
@@ -112,3 +114,69 @@ def test_get_jobs(db, client):
|
112 | 114 | response = client.get('/landings?revision_id=D1&status=finished')
|
113 | 115 | assert response.status_code == 200
|
114 | 116 | assert len(response.json) == 1
|
| 117 | + |
| 118 | + |
| 119 | +def test_update_landing(db, client, mocker): |
| 120 | + m_hashtag = mocker.patch('landoapi.models.landing._hashtag') |
| 121 | + m_hashtag.return_value = 'abc' |
| 122 | + Landing(1, 'D1', 'started').save(True) |
| 123 | + |
| 124 | + response = client.post( |
| 125 | + '/landings/1/update?auth=abc', |
| 126 | + data=json.dumps( |
| 127 | + { |
| 128 | + 'request_id': 1, |
| 129 | + 'status': TRANSPLANT_JOB_FINISHED, |
| 130 | + 'revision_id': 'D1' |
| 131 | + } |
| 132 | + ), |
| 133 | + content_type='application/json' |
| 134 | + ) |
| 135 | + |
| 136 | + assert response.status_code == 202 |
| 137 | + response = client.get('/landings/1') |
| 138 | + assert response.json['status'] == TRANSPLANT_JOB_FINISHED |
| 139 | + |
| 140 | + |
| 141 | +def test_update_landing_bad_id(db, client, mocker): |
| 142 | + m_hashtag = mocker.patch('landoapi.models.landing._hashtag') |
| 143 | + m_hashtag.return_value = 'abc' |
| 144 | + Landing(1, 'D1', 'started').save(True) |
| 145 | + |
| 146 | + response = client.post( |
| 147 | + '/landings/2/update?auth=abc', |
| 148 | + data=json.dumps( |
| 149 | + { |
| 150 | + 'request_id': 1, |
| 151 | + 'status': TRANSPLANT_JOB_FINISHED, |
| 152 | + 'revision_id': 'D1' |
| 153 | + } |
| 154 | + ), |
| 155 | + content_type='application/json' |
| 156 | + ) |
| 157 | + |
| 158 | + assert response.status_code == 404 |
| 159 | + response = client.get('/landings/1') |
| 160 | + assert response.json['status'] == TRANSPLANT_JOB_STARTED |
| 161 | + |
| 162 | + |
| 163 | +def test_update_landing_bad_auth(db, client, mocker): |
| 164 | + m_hashtag = mocker.patch('landoapi.models.landing._hashtag') |
| 165 | + m_hashtag.return_value = 'abc' |
| 166 | + Landing(1, 'D1', 'started').save(True) |
| 167 | + |
| 168 | + response = client.post( |
| 169 | + '/landings/1/update?auth=cde', |
| 170 | + data=json.dumps( |
| 171 | + { |
| 172 | + 'request_id': 1, |
| 173 | + 'status': TRANSPLANT_JOB_FINISHED, |
| 174 | + 'revision_id': 'D1' |
| 175 | + } |
| 176 | + ), |
| 177 | + content_type='application/json' |
| 178 | + ) |
| 179 | + |
| 180 | + assert response.status_code == 404 |
| 181 | + response = client.get('/landings/1') |
| 182 | + assert response.json['status'] == TRANSPLANT_JOB_STARTED |
0 commit comments