Пример #1
0
def test_delete_project_handles_503(requests_mock):
    requests_mock.delete('http://testing-es-url/api/v1/projects/pid', text='', status_code=503)

    with pytest.raises(ServiceError):
        rest_client.project_delete('http://testing-es-url', 'pid', 'mykey')

    assert requests_mock.last_request.headers['Authorization'] == 'mykey'
Пример #2
0
 def _delete_created_projects(cls):
     for project in cls._created_projects:
         try:
             rest_client.project_delete(cls.url, project['project_id'],
                                        project['result_token'])
         except ServiceError:
             # probably already deleted in the test
             pass
Пример #3
0
    def test_project_run(self):
        p = self._create_project()

        p_id = p['project_id']
        upload_response_1 = rest_client.project_upload_clks(
            self.url, p_id, p['update_tokens'][0], self.clk_data_1)
        upload_response_2 = rest_client.project_upload_clks(
            self.url, p_id, p['update_tokens'][1], self.clk_data_2)

        run_response = rest_client.run_create(self.url,
                                              p_id,
                                              p['result_token'],
                                              0.999,
                                              name='clkhash rest client test')
        assert 'run_id' in run_response
        r_id = run_response['run_id']
        with pytest.raises(ServiceError):
            rest_client.run_get_status(self.url, p_id, 'invalid-run-id',
                                       p['result_token'])
        with pytest.raises(ServiceError):
            rest_client.run_get_status(self.url, p_id, r_id, 'invalid-token')

        status1 = rest_client.run_get_status(self.url, p_id, r_id,
                                             p['result_token'])
        assert 'state' in status1
        assert 'stages' in status1
        print(rest_client.format_run_status(status1))

        # Check we can watch the run progress this will raise if not
        # completed in 10 seconds
        for status_update in rest_client.watch_run_status(
                self.url, p_id, r_id, p['result_token'], 10, 0.5):
            print(rest_client.format_run_status(status_update))

        # Check that we can still "wait" on a completed run and get a valid
        # status
        status2 = rest_client.wait_for_run(self.url, p_id, r_id,
                                           p['result_token'], 10)
        assert status2['state'] == 'completed'
        coord_result_raw = rest_client.run_get_result_text(
            self.url, p_id, r_id, p['result_token'])
        coord_result = json.loads(coord_result_raw)
        assert 'mask' in coord_result
        assert len(coord_result['mask']) == 1000
        assert coord_result['mask'].count(1) > 10

        result_a = json.loads(
            rest_client.run_get_result_text(
                self.url, p_id, r_id, upload_response_1['receipt_token']))
        result_b = json.loads(
            rest_client.run_get_result_text(
                self.url, p_id, r_id, upload_response_2['receipt_token']))
        assert 'permutation' in result_a
        assert 'rows' in result_a
        assert 1000 == result_b['rows'] == result_a['rows']

        rest_client.run_delete(self.url, p_id, r_id, p['result_token'])
        rest_client.project_delete(self.url, p_id, p['result_token'])
Пример #4
0
def delete_resources(config, credentials, run):
    try:
        if run is not None and 'run_id' in run:
            rest_client.run_delete(config['server'], credentials['project_id'],
                                   run['run_id'], credentials['result_token'])
        rest_client.project_delete(config['server'], credentials['project_id'],
                                   credentials['result_token'])
    except Exception as e:
        logger.warning('Error while deleting resources... {}'.format(e))
Пример #5
0
 def delete_created_projects(self):
     for project in self._created_projects:
         try:
             rest_client.project_delete(self.url, project['project_id'],
                                        project['result_token'])
         except KeyError:
             pass
         except ServiceError:
             # probably already deleted
             pass
Пример #6
0
def delete_project(server, project, apikey, verbose):
    """Delete a project on an entity matching server.
    """
    if verbose:
        log("Entity Matching Server: {}".format(server))

    try:
        project_delete(server, project, apikey)
    except ServiceError as e:
        log("Unexpected response with status {}".format(e.status_code))
        log(e.text)
    else:
        log("Project deleted")