From c90d01e72eb09e30df3f94b7e73924b375675082 Mon Sep 17 00:00:00 2001 From: Alexandru Coman Date: Mon, 13 Feb 2017 18:02:34 +0200 Subject: [PATCH] Inject information regarding parent and grandparent --- hnv/client.py | 13 ++++++++----- hnv/tests/test_client.py | 7 ++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/hnv/client.py b/hnv/client.py index 99e07c5..996086e 100644 --- a/hnv/client.py +++ b/hnv/client.py @@ -108,7 +108,6 @@ class _BaseHNVModel(model.Model): # pylint: disable=no-member # Reset the model to the initial state - self._data = self._meta.get_defaults() self._provision_done = False # Set back the provision flag self._changes.clear() # Clear the changes @@ -138,10 +137,12 @@ class _BaseHNVModel(model.Model): grandparent_id=grandparent_id or "") resources = [] while True: - raw_data = client.get_resource(endpoint) - for item in raw_data.get("value", []): - resources.append(cls.from_raw_data(item)) - endpoint = raw_data.get("nextLink") + response = client.get_resource(endpoint) + for raw_data in response.get("value", []): + raw_data["parentResourceID"] = parent_id + raw_data["grandParentResourceID"] = grandparent_id + resources.append(cls.from_raw_data(raw_data)) + endpoint = response.get("nextLink") if not endpoint: break return resources @@ -154,6 +155,8 @@ class _BaseHNVModel(model.Model): parent_id=parent_id or "", grandparent_id=grandparent_id or "") raw_data = client.get_resource(endpoint) + raw_data["parentResourceID"] = parent_id + raw_data["grandParentResourceID"] = grandparent_id return cls.from_raw_data(raw_data) @classmethod diff --git a/hnv/tests/test_client.py b/hnv/tests/test_client.py index 8cef072..d636c6e 100644 --- a/hnv/tests/test_client.py +++ b/hnv/tests/test_client.py @@ -55,6 +55,7 @@ class TestBaseHNVModel(unittest.TestCase): mock_from_raw_data.return_value = mock.sentinel.resource http_client = mock_get_client.return_value = mock.Mock() get_resource = http_client.get_resource = mock.Mock() + get_resource.return_value = {} resource = client._BaseHNVModel.get(resource_id="hnv-client-test") @@ -64,16 +65,16 @@ class TestBaseHNVModel(unittest.TestCase): @mock.patch("hnv.client._BaseHNVModel.from_raw_data") @mock.patch("hnv.client._BaseHNVModel._get_client") def test_get_all(self, mock_get_client, mock_from_raw_data): - mock_from_raw_data.side_effect = range(10) + mock_from_raw_data.side_effect = [{} for index in range(10)] http_client = mock_get_client.return_value = mock.Mock() get_resource = http_client.get_resource = mock.Mock() - get_resource.return_value = {"value": range(10)} + get_resource.return_value = {"value": [{} for _ in range(10)]} resources = client._BaseHNVModel.get() get_resource.assert_called_once_with("/") - self.assertEqual(resources, range(10)) + self.assertEqual(resources, [{} for _ in range(10)]) @mock.patch("time.sleep") @mock.patch("hnv.client._BaseHNVModel._get_client")