|
21 | 21 | from morango.models.certificates import Key |
22 | 22 | from morango.models.certificates import ScopeDefinition |
23 | 23 | from morango.models.core import SyncSession |
| 24 | +from morango.models.core import TransferSession |
24 | 25 | from morango.models.fields.crypto import SharedKey |
25 | 26 | from morango.sync.context import LocalSessionContext |
26 | 27 | from morango.sync.context import NetworkSessionContext |
@@ -236,6 +237,66 @@ def create(**data): |
236 | 237 | self.network_connection.close_sync_session(client.sync_session) |
237 | 238 | self.assertEqual(SyncSession.objects.filter(active=True).count(), 0) |
238 | 239 |
|
| 240 | + def test_close_transfer_session_ignores_404(self): |
| 241 | + mock_response = mock.Mock() |
| 242 | + mock_response.status_code = 404 |
| 243 | + transfer_session = mock.Mock(spec=TransferSession) |
| 244 | + transfer_session.id = uuid.uuid4().hex |
| 245 | + |
| 246 | + with mock.patch.object( |
| 247 | + self.network_connection.session, |
| 248 | + "delete", |
| 249 | + side_effect=HTTPError(response=mock_response), |
| 250 | + ): |
| 251 | + # should not raise even though the server returned 404 |
| 252 | + self.network_connection._close_transfer_session(transfer_session) |
| 253 | + |
| 254 | + def test_close_sync_session_ignores_404(self): |
| 255 | + mock_response = mock.Mock() |
| 256 | + mock_response.status_code = 404 |
| 257 | + sync_session = mock.Mock(spec=SyncSession) |
| 258 | + sync_session.id = uuid.uuid4().hex |
| 259 | + |
| 260 | + with mock.patch.object( |
| 261 | + self.network_connection.session, |
| 262 | + "delete", |
| 263 | + side_effect=HTTPError(response=mock_response), |
| 264 | + ): |
| 265 | + # should not raise even though the server returned 404 |
| 266 | + self.network_connection._close_sync_session(sync_session) |
| 267 | + |
| 268 | + def test_close_sync_session_raises_500(self): |
| 269 | + mock_response = mock.Mock() |
| 270 | + mock_response.status_code = 500 |
| 271 | + sync_session = mock.Mock(spec=SyncSession) |
| 272 | + sync_session.id = uuid.uuid4().hex |
| 273 | + |
| 274 | + e = HTTPError(response=mock_response) |
| 275 | + |
| 276 | + with mock.patch.object( |
| 277 | + self.network_connection.session, |
| 278 | + "delete", |
| 279 | + side_effect=e, |
| 280 | + ): |
| 281 | + with self.assertRaises(type(e)) as raised: |
| 282 | + self.network_connection._close_sync_session(sync_session) |
| 283 | + self.assertEqual(e, raised.exception) |
| 284 | + |
| 285 | + def test_close_sync_session_raises_no_response(self): |
| 286 | + sync_session = mock.Mock(spec=SyncSession) |
| 287 | + sync_session.id = uuid.uuid4().hex |
| 288 | + |
| 289 | + e = HTTPError() |
| 290 | + |
| 291 | + with mock.patch.object( |
| 292 | + self.network_connection.session, |
| 293 | + "delete", |
| 294 | + side_effect=e, |
| 295 | + ): |
| 296 | + with self.assertRaises(type(e)) as raised: |
| 297 | + self.network_connection._close_sync_session(sync_session) |
| 298 | + self.assertEqual(e, raised.exception) |
| 299 | + |
239 | 300 | @mock.patch.object(SyncSession.objects, "create") |
240 | 301 | def test_resume_sync_session(self, mock_create): |
241 | 302 | def create(**data): |
|
0 commit comments