def test_client_delete(self):
     """Test the client response to an unknown error."""
     endpoint_url = 'http://127.0.0.1:8080'
     class_type = 'users'
     params = {'_id': 127}
     httpretty.register_uri(httpretty.DELETE,
                            '{0}/{1}'.format(endpoint_url, class_type))
     client = PMClient(endpoint_url)
     response = client.delete(class_type, params)
     self.assertTrue(response)
def main():
    """Main method for loading the test data."""
    mdclient = PMClient(getenv('METADATA_URL', 'http://127.0.0.1:8121'))
    test_data_dir = dirname(realpath(__file__))
    object_order = [
        'analytical_tools',
        'journals',
        'citations',
        'institutions',
        'users',
        'contributors',
        'projects',
        'instruments',
        'transactions',
        'transsip',
        'transsap',
        'files',
        'groups',
        'keys',
        'relationships',
        'data_sources',
        'keywords',
        'values',
        'atool_transaction',
        'atool_project',
        'citation_contributor',
        'citation_keyword',
        'citation_project',
        'file_key_value',
        'institution_user',
        'instrument_user',
        'instrument_group',
        'project_group',
        'project_instrument',
        'project_user',
        'trans_key_value',
        'user_group',
        'transaction_user',
        'doi_authors',
        'doi_entries',
        'doi_info',
        'doi_transaction',
        'doi_author_mapping',
        'citation_transaction',
        'citation_doi',
        'instrument_data_source',
        'instrument_key_value',
        'datasets',
        'dataset_file',
        'dataset_project_user'
    ]
    for obj in object_order:
        mdclient.create(obj, loads(
            open('{0}.json'.format(join(test_data_dir, obj))).read()))
def main():
    """Main method for loading the test data."""
    mdclient = PMClient(getenv('METADATA_URL', 'http://127.0.0.1:8121'))
    test_data_dir = dirname(realpath(__file__))
    object_order = [
        'users', 'projects', 'instruments', 'instrument_group',
        'instrument_user', 'project_instrument', 'project_user',
        'transactions', 'transsip', 'transaction_user', 'doi_entries',
        'doi_transaction', 'instrument_key_value'
    ]
    for obj in object_order:
        mdclient.create(
            obj,
            loads(open('{0}.json'.format(join(test_data_dir, obj))).read()))
 def test_client_get_not_found(self):
     """Test response from the client when the object is not found."""
     endpoint_url = 'http://127.0.0.1:8080'
     class_type = 'users'
     params = {'_id': 127}
     response_body = {}
     httpretty.register_uri(httpretty.GET,
                            '{0}/{1}'.format(endpoint_url, class_type),
                            body=dumps(response_body),
                            content_type='application/json',
                            status=404)
     client = PMClient(endpoint_url)
     response = client.get(class_type, params)
     self.assertEqual(response, {})
 def test_client_get_unknown_error(self):
     """Test the client response to an unknown error."""
     endpoint_url = 'http://127.0.0.1:8080'
     class_type = 'users'
     params = {'_id': 127}
     httpretty.register_uri(httpretty.GET,
                            '{0}/{1}'.format(endpoint_url, class_type),
                            body='This is the error.',
                            status=301)
     client = PMClient(endpoint_url)
     try:
         client.get(class_type, params)
     except PMClientError as ex:
         self.assertTrue('301' in str(ex))
         self.assertTrue('This is the error.' in str(ex))
 def test_client_update(self):
     """Test the client response to an unknown error."""
     endpoint_url = 'http://127.0.0.1:8080'
     class_type = 'users'
     params = {'_id': 127}
     response_body = {
         '_id': 127,
         'last_name': 'Doe',
         'first_name': 'John',
         'network_id': 'johndoe'
     }
     httpretty.register_uri(httpretty.POST,
                            '{0}/{1}'.format(endpoint_url, class_type))
     client = PMClient(endpoint_url)
     response = client.update(class_type, params, response_body)
     self.assertTrue(response)
 def test_client_create(self):
     """Test the client response to an unknown error."""
     endpoint_url = 'http://127.0.0.1:8080'
     class_type = 'users'
     response_body = {
         '_id': 127,
         'last_name': 'Doe',
         'first_name': 'John',
         'network_id': 'johndoe'
     }
     httpretty.register_uri(httpretty.PUT,
                            '{0}/{1}'.format(endpoint_url, class_type))
     client = PMClient(endpoint_url)
     response = client.create(class_type, response_body)
     self.assertTrue(response)
     chk_body = loads(httpretty.last_request().body.decode('UTF-8'))
     for key, value in response_body.items():
         self.assertEqual(chk_body[key], value)
 def test_client_update_not_found(self):
     """Test the client response to not finding things."""
     endpoint_url = 'http://127.0.0.1:8080'
     class_type = 'users'
     params = {'_id': 127}
     response_body = {}
     post_body = {
         '_id': 127,
         'last_name': 'Doe',
         'first_name': 'John',
         'network_id': 'johndoe'
     }
     httpretty.register_uri(httpretty.POST,
                            '{0}/{1}'.format(endpoint_url, class_type),
                            body=dumps(response_body),
                            content_type='application/json',
                            status=404)
     client = PMClient(endpoint_url)
     response = client.update(class_type, params, post_body)
     self.assertFalse(response)
 def test_client_create_unk_error(self):
     """Test the client response to an unknown error."""
     endpoint_url = 'http://127.0.0.1:8080'
     class_type = 'users'
     response_body = {
         '_id': 127,
         'last_name': 'Doe',
         'first_name': 'John',
         'network_id': 'johndoe'
     }
     httpretty.register_uri(httpretty.PUT,
                            '{0}/{1}'.format(endpoint_url, class_type),
                            body='This is the error.',
                            status=301)
     client = PMClient(endpoint_url)
     try:
         client.create(class_type, response_body)
     except PMClientError as ex:
         self.assertTrue('301' in str(ex))
         self.assertTrue('This is the error.' in str(ex))
 def test_client_get(self):
     """Test the client get methods."""
     endpoint_url = 'http://127.0.0.1:8080'
     class_type = 'users'
     params = {'_id': 127}
     response_body = {
         '_id': 127,
         'last_name': 'Doe',
         'first_name': 'John',
         'network_id': 'johndoe'
     }
     httpretty.register_uri(httpretty.GET,
                            '{0}/{1}'.format(endpoint_url, class_type),
                            body=dumps(response_body),
                            content_type='application/json')
     client = PMClient(endpoint_url)
     response = client.get(class_type, params)
     self.assertNotEqual(response, {})
     for key in response.keys():
         self.assertEqual(response[key], response_body[key])
 def test_client_update_server_error(self):
     """Test the client response to not finding things."""
     endpoint_url = 'http://127.0.0.1:8080'
     class_type = 'users'
     params = {'_id': 127}
     post_body = {
         '_id': 127,
         'last_name': 'Doe',
         'first_name': 'John',
         'network_id': 'johndoe'
     }
     httpretty.register_uri(httpretty.POST,
                            '{0}/{1}'.format(endpoint_url, class_type),
                            body=unicode_type('This is the error.'),
                            status=501)
     client = PMClient(endpoint_url)
     try:
         client.update(class_type, params, post_body)
     except PMClientError as ex:
         self.assertTrue('501' in str(ex))
         self.assertTrue('This is the error.' in str(ex))
         self.assertTrue('Internal Server Error' in str(ex))