Inject information regarding parent and grandparent
This commit is contained in:
parent
854dded6fb
commit
c90d01e72e
@ -108,7 +108,6 @@ class _BaseHNVModel(model.Model):
|
|||||||
# pylint: disable=no-member
|
# pylint: disable=no-member
|
||||||
|
|
||||||
# Reset the model to the initial state
|
# Reset the model to the initial state
|
||||||
self._data = self._meta.get_defaults()
|
|
||||||
self._provision_done = False # Set back the provision flag
|
self._provision_done = False # Set back the provision flag
|
||||||
self._changes.clear() # Clear the changes
|
self._changes.clear() # Clear the changes
|
||||||
|
|
||||||
@ -138,10 +137,12 @@ class _BaseHNVModel(model.Model):
|
|||||||
grandparent_id=grandparent_id or "")
|
grandparent_id=grandparent_id or "")
|
||||||
resources = []
|
resources = []
|
||||||
while True:
|
while True:
|
||||||
raw_data = client.get_resource(endpoint)
|
response = client.get_resource(endpoint)
|
||||||
for item in raw_data.get("value", []):
|
for raw_data in response.get("value", []):
|
||||||
resources.append(cls.from_raw_data(item))
|
raw_data["parentResourceID"] = parent_id
|
||||||
endpoint = raw_data.get("nextLink")
|
raw_data["grandParentResourceID"] = grandparent_id
|
||||||
|
resources.append(cls.from_raw_data(raw_data))
|
||||||
|
endpoint = response.get("nextLink")
|
||||||
if not endpoint:
|
if not endpoint:
|
||||||
break
|
break
|
||||||
return resources
|
return resources
|
||||||
@ -154,6 +155,8 @@ class _BaseHNVModel(model.Model):
|
|||||||
parent_id=parent_id or "",
|
parent_id=parent_id or "",
|
||||||
grandparent_id=grandparent_id or "")
|
grandparent_id=grandparent_id or "")
|
||||||
raw_data = client.get_resource(endpoint)
|
raw_data = client.get_resource(endpoint)
|
||||||
|
raw_data["parentResourceID"] = parent_id
|
||||||
|
raw_data["grandParentResourceID"] = grandparent_id
|
||||||
return cls.from_raw_data(raw_data)
|
return cls.from_raw_data(raw_data)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -55,6 +55,7 @@ class TestBaseHNVModel(unittest.TestCase):
|
|||||||
mock_from_raw_data.return_value = mock.sentinel.resource
|
mock_from_raw_data.return_value = mock.sentinel.resource
|
||||||
http_client = mock_get_client.return_value = mock.Mock()
|
http_client = mock_get_client.return_value = mock.Mock()
|
||||||
get_resource = http_client.get_resource = mock.Mock()
|
get_resource = http_client.get_resource = mock.Mock()
|
||||||
|
get_resource.return_value = {}
|
||||||
|
|
||||||
resource = client._BaseHNVModel.get(resource_id="hnv-client-test")
|
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.from_raw_data")
|
||||||
@mock.patch("hnv.client._BaseHNVModel._get_client")
|
@mock.patch("hnv.client._BaseHNVModel._get_client")
|
||||||
def test_get_all(self, mock_get_client, mock_from_raw_data):
|
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()
|
http_client = mock_get_client.return_value = mock.Mock()
|
||||||
get_resource = http_client.get_resource = 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()
|
resources = client._BaseHNVModel.get()
|
||||||
|
|
||||||
get_resource.assert_called_once_with("/")
|
get_resource.assert_called_once_with("/")
|
||||||
self.assertEqual(resources, range(10))
|
self.assertEqual(resources, [{} for _ in range(10)])
|
||||||
|
|
||||||
@mock.patch("time.sleep")
|
@mock.patch("time.sleep")
|
||||||
@mock.patch("hnv.client._BaseHNVModel._get_client")
|
@mock.patch("hnv.client._BaseHNVModel._get_client")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user