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
|
||||
|
||||
# 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
|
||||
|
@ -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")
|
||||
|
Loading…
x
Reference in New Issue
Block a user