def test_cancel_with_id(self): """Make sure the cancel method submits to the right endpoint. When cancel is called after the submission is finished. """ submission_id = 'test-id' # each thread can have its instance of a session because # the mocked responses are stateless def create_mock_session(client): session = mock.Mock() reply_body = '[%s]' % continue_reply(submission_id, 'solver') session.get = lambda a: choose_reply( a, {'problems/?id={}'.format(submission_id): reply_body}) session.delete = DeleteEvent.handle return session with mock.patch.object(Client, 'create_session', create_mock_session): with Client('endpoint', 'token') as client: solver = Solver(client, solver_data('abc123')) future = solver._retrieve_problem(submission_id) future.cancel() try: self.assertTrue(future.id is not None) future.samples self.fail() except DeleteEvent as event: if event.url == 'problems/': self.assertEqual(event.body, '["{}"]'.format(submission_id)) else: self.assertEqual(event.url, 'problems/{}/'.format(submission_id))
def test_cancel_with_id(self): """Make sure the cancel method submits to the right endpoint. When cancel is called after the submission is finished. """ submission_id = 'test-id' reply_body = '[%s]' % continue_reply(submission_id, 'solver') with Client('endpoint', 'token') as client: client.session = mock.Mock() client.session.get = lambda a: choose_reply( a, {'endpoint/problems/?id={}'.format(submission_id): reply_body}) client.session.delete = DeleteEvent.handle solver = Solver(client, solver_data('abc123')) future = solver._retrieve_problem(submission_id) future.cancel() try: self.assertTrue(future.id is not None) future.samples self.fail() except DeleteEvent as event: if event.url == 'endpoint/problems/': self.assertEqual(event.body, '["{}"]'.format(submission_id)) else: self.assertEqual( event.url, 'endpoint/problems/{}/'.format(submission_id))