Exemplo n.º 1
0
 def test_get_collection_two_pages(self):
     mock_requests = MagicMock()
     mock_requests.get.side_effect = [
         fake_response_with_pages(status_code=200,
                       json_return_value={"results": [1, 2, 3]},
                       num_pages=2),
         fake_response_with_pages(status_code=200,
                       json_return_value={"results": [4, 5]},
                       num_pages=2)
     ]
     api = DataServiceApi(auth=None, url="something.com/v1/", http=mock_requests)
     response = api._get_collection(url_suffix="projects", data={}, content_type=ContentType.json)
     self.assertEqual([1, 2, 3, 4, 5], response.json()["results"])
     call_args_list = mock_requests.get.call_args_list
     self.assertEqual(2, len(call_args_list))
     # Check first request
     call_args = call_args_list[0]
     first_param = call_args[0][0]
     self.assertEqual('something.com/v1/projects', first_param)
     dict_param = call_args[1]
     self.assertEqual({'Content-Type': 'application/json'}, dict_param['headers'])
     self.assertIn('"per_page": 100', dict_param['params'])
     # Check second request
     call_args = call_args_list[1]
     first_param = call_args[0][0]
     self.assertEqual('something.com/v1/projects', first_param)
     dict_param = call_args[1]
     self.assertEqual({'Content-Type': 'application/json'}, dict_param['headers'])
     self.assertIn('"per_page": 100', dict_param['params'])
     self.assertIn('"page": 2', dict_param['params'])
Exemplo n.º 2
0
 def test_get_collection_two_pages(self):
     mock_requests = MagicMock()
     mock_requests.get.side_effect = [
         fake_response_with_pages(status_code=200,
                                  json_return_value={"results": [1, 2, 3]},
                                  num_pages=2),
         fake_response_with_pages(status_code=200,
                                  json_return_value={"results": [4, 5]},
                                  num_pages=2)
     ]
     api = DataServiceApi(self.create_mock_auth(config_page_size=100), url="something.com/v1/", http=mock_requests)
     response = api._get_collection(url_suffix="projects", data={})
     self.assertEqual([1, 2, 3, 4, 5], response.json()["results"])
     call_args_list = mock_requests.get.call_args_list
     self.assertEqual(2, len(call_args_list))
     # Check first request
     call_args = call_args_list[0]
     first_param = call_args[0][0]
     self.assertEqual('something.com/v1/projects', first_param)
     dict_param = call_args[1]
     self.assertEqual('application/x-www-form-urlencoded', dict_param['headers']['Content-Type'])
     self.assertIn("DukeDSClient/", dict_param['headers']['User-Agent'])
     self.assertEqual(100, dict_param['params']['per_page'])
     self.assertEqual(1, dict_param['params']['page'])
     # Check second request
     call_args = call_args_list[1]
     first_param = call_args[0][0]
     self.assertEqual('something.com/v1/projects', first_param)
     dict_param = call_args[1]
     self.assertEqual('application/x-www-form-urlencoded', dict_param['headers']['Content-Type'])
     self.assertIn("DukeDSClient/", dict_param['headers']['User-Agent'])
     self.assertEqual(100, dict_param['params']['per_page'])
     self.assertEqual(2, dict_param['params']['page'])
Exemplo n.º 3
0
 def test_get_collection_one_page(self):
     mock_requests = MagicMock()
     mock_requests.get.side_effect = [
         fake_response_with_pages(status_code=200,
                                  json_return_value={"results": [1, 2, 3]},
                                  num_pages=1)
     ]
     api = DataServiceApi(auth=None,
                          url="something.com/v1/",
                          http=mock_requests)
     response = api._get_collection(url_suffix="users",
                                    data={},
                                    content_type=ContentType.json)
     self.assertEqual([1, 2, 3], response.json()["results"])
     call_args_list = mock_requests.get.call_args_list
     self.assertEqual(1, len(call_args_list))
     # Check first request
     call_args = call_args_list[0]
     first_param = call_args[0][0]
     self.assertEqual('something.com/v1/users', first_param)
     dict_param = call_args[1]
     self.assertEqual('application/json',
                      dict_param['headers']['Content-Type'])
     self.assertIn("DukeDSClient/", dict_param['headers']['User-Agent'])
     self.assertIn('"per_page": 100', dict_param['params'])
Exemplo n.º 4
0
    def test_relations_methods(self):
        api = DataServiceApi(auth=self.create_mock_auth(config_page_size=100), url="base/v1/", http=MagicMock())
        api._get_collection = MagicMock()
        api._get_single_item = MagicMock()
        api._post = MagicMock()
        api._delete = MagicMock()

        # This endpoint is a little strange with using object_kind and relation types as magic values
        api.get_relations('dds-file', '123')
        api._get_collection.assert_called_with('/relations/dds-file/123', {})
        api.get_relation('124')
        api._get_single_item.assert_called_with('/relations/124/', {})

        api.create_used_relation('125', 'dds-file', '456')
        payload = {
            'entity': {
                'kind': 'dds-file',
                'id': '456'
            }, 'activity': {
                'id': '125'
            }
        }
        api._post.assert_called_with('/relations/used', payload)

        api.create_was_generated_by_relation('126', 'dds-file', '457')
        payload = {
            'entity': {
                'kind': 'dds-file',
                'id': '457'
            }, 'activity': {
                'id': '126'
            }
        }
        api._post.assert_called_with('/relations/was_generated_by', payload)

        api.create_was_generated_by_relation('126', 'dds-file', '457')
        payload = {
            'entity': {
                'kind': 'dds-file',
                'id': '457'
            }, 'activity': {
                'id': '126'
            }
        }
        api._post.assert_called_with('/relations/was_generated_by', payload)

        api.create_was_invalidated_by_relation('127', 'dds-file', '458')
        payload = {
            'entity': {
                'kind': 'dds-file',
                'id': '458'
            }, 'activity': {
                'id': '127'
            }
        }
        api._post.assert_called_with('/relations/was_invalidated_by', payload)

        api.create_was_derived_from_relation('128', 'dds-file', '129', 'dds-file')
        payload = {
            'generated_entity': {
                'kind': 'dds-file',
                'id': '129'
            }, 'used_entity': {
                'kind': 'dds-file',
                'id': '128'
            }
        }
        api._post.assert_called_with('/relations/was_derived_from', payload)

        api.delete_relation('130')
        api._delete.assert_called_with('/relations/130/', {})
Exemplo n.º 5
0
    def test_relations_methods(self):
        api = DataServiceApi(auth=None, url="base/v1/", http=MagicMock())
        api._get_collection = MagicMock()
        api._get_single_item = MagicMock()
        api._post = MagicMock()
        api._delete = MagicMock()

        # This endpoint is a little strange with using object_kind and relation types as magic values
        api.get_relations('dds-file', '123')
        api._get_collection.assert_called_with('/relations/dds-file/123', {})
        api.get_relation('124')
        api._get_single_item.assert_called_with('/relations/124/', {})

        api.create_used_relation('125', 'dds-file', '456')
        payload = {
            'entity': {
                'kind': 'dds-file',
                'id': '456'
            },
            'activity': {
                'id': '125'
            }
        }
        api._post.assert_called_with('/relations/used', payload)

        api.create_was_generated_by_relation('126', 'dds-file', '457')
        payload = {
            'entity': {
                'kind': 'dds-file',
                'id': '457'
            },
            'activity': {
                'id': '126'
            }
        }
        api._post.assert_called_with('/relations/was_generated_by', payload)

        api.create_was_generated_by_relation('126', 'dds-file', '457')
        payload = {
            'entity': {
                'kind': 'dds-file',
                'id': '457'
            },
            'activity': {
                'id': '126'
            }
        }
        api._post.assert_called_with('/relations/was_generated_by', payload)

        api.create_was_invalidated_by_relation('127', 'dds-file', '458')
        payload = {
            'entity': {
                'kind': 'dds-file',
                'id': '458'
            },
            'activity': {
                'id': '127'
            }
        }
        api._post.assert_called_with('/relations/was_invalidated_by', payload)

        api.create_was_derived_from_relation('128', 'dds-file', '129',
                                             'dds-file')
        payload = {
            'generated_entity': {
                'kind': 'dds-file',
                'id': '129'
            },
            'used_entity': {
                'kind': 'dds-file',
                'id': '128'
            }
        }
        api._post.assert_called_with('/relations/was_derived_from', payload)

        api.delete_relation('130')
        api._delete.assert_called_with('/relations/130/', {})