Added audit & strategy ObjectField for ActionPlan
In this changeset, I added the "audit" and the "strategy "ObjectField which can either be loaded by setting the new "eager" parameter as True or not loaded (as before) by setting it to False. The advantage of introducing this eager parameter is that this way, we can reduce to a minimum the overhead of DB queries whenever the related object fields is not actually needed. Change-Id: Ieca6fa438cbf2267f5ae2ea0d059b2953e65076b Partially-Implements: blueprint watcher-versioned-objects
This commit is contained in:
@@ -274,9 +274,9 @@ class TestPurgeCommand(base.DbTestCase):
|
||||
id=self._generate_id(),
|
||||
uuid=utils.generate_uuid())
|
||||
action_plan4 = obj_utils.create_test_action_plan(
|
||||
self.context, audit_id=audit4.id,
|
||||
id=self._generate_id(),
|
||||
uuid=utils.generate_uuid())
|
||||
self.context,
|
||||
id=self._generate_id(), uuid=utils.generate_uuid(),
|
||||
audit_id=audit4.id, strategy_id=self.strategy1.id)
|
||||
action4 = obj_utils.create_test_action(
|
||||
self.context, action_plan_id=action_plan4.id,
|
||||
id=self._generate_id(),
|
||||
@@ -292,9 +292,9 @@ class TestPurgeCommand(base.DbTestCase):
|
||||
id=self._generate_id(),
|
||||
uuid=utils.generate_uuid())
|
||||
action_plan5 = obj_utils.create_test_action_plan(
|
||||
self.context, audit_id=audit5.id,
|
||||
id=self._generate_id(),
|
||||
uuid=utils.generate_uuid())
|
||||
self.context,
|
||||
id=self._generate_id(), uuid=utils.generate_uuid(),
|
||||
audit_id=audit5.id, strategy_id=self.strategy1.id)
|
||||
action5 = obj_utils.create_test_action(
|
||||
self.context, action_plan_id=action_plan5.id,
|
||||
id=self._generate_id(),
|
||||
@@ -367,13 +367,13 @@ class TestPurgeCommand(base.DbTestCase):
|
||||
strategy_id=None, id=self._generate_id(),
|
||||
uuid=utils.generate_uuid())
|
||||
audit4 = obj_utils.create_test_audit(
|
||||
self.context, audit_template_id=audit_template4.id,
|
||||
id=self._generate_id(),
|
||||
uuid=utils.generate_uuid())
|
||||
self.context,
|
||||
id=self._generate_id(), uuid=utils.generate_uuid(),
|
||||
audit_template_id=audit_template4.id)
|
||||
action_plan4 = obj_utils.create_test_action_plan(
|
||||
self.context, audit_id=audit4.id,
|
||||
id=self._generate_id(),
|
||||
uuid=utils.generate_uuid())
|
||||
self.context,
|
||||
id=self._generate_id(), uuid=utils.generate_uuid(),
|
||||
audit_id=audit4.id, strategy_id=self.strategy1.id)
|
||||
action4 = obj_utils.create_test_action(
|
||||
self.context, action_plan_id=action_plan4.id,
|
||||
id=self._generate_id(),
|
||||
@@ -389,9 +389,9 @@ class TestPurgeCommand(base.DbTestCase):
|
||||
id=self._generate_id(),
|
||||
uuid=utils.generate_uuid())
|
||||
action_plan5 = obj_utils.create_test_action_plan(
|
||||
self.context, audit_id=audit5.id,
|
||||
id=self._generate_id(),
|
||||
uuid=utils.generate_uuid())
|
||||
self.context,
|
||||
id=self._generate_id(), uuid=utils.generate_uuid(),
|
||||
audit_id=audit5.id, strategy_id=self.strategy1.id)
|
||||
action5 = obj_utils.create_test_action(
|
||||
self.context, action_plan_id=action_plan5.id,
|
||||
id=self._generate_id(),
|
||||
|
||||
@@ -137,7 +137,7 @@ def create_test_action(**kwargs):
|
||||
|
||||
|
||||
def get_test_action_plan(**kwargs):
|
||||
return {
|
||||
action_plan_data = {
|
||||
'id': kwargs.get('id', 1),
|
||||
'uuid': kwargs.get('uuid', '76be87bd-3422-43f9-93a0-e85a577e3061'),
|
||||
'state': kwargs.get('state', objects.action_plan.State.ONGOING),
|
||||
@@ -150,6 +150,15 @@ def get_test_action_plan(**kwargs):
|
||||
'deleted_at': kwargs.get('deleted_at'),
|
||||
}
|
||||
|
||||
# ObjectField doesn't allow None nor dict, so if we want to simulate a
|
||||
# non-eager object loading, the field should not be referenced at all.
|
||||
if kwargs.get('audit'):
|
||||
action_plan_data['audit'] = kwargs.get('audit')
|
||||
if kwargs.get('strategy'):
|
||||
action_plan_data['strategy'] = kwargs.get('strategy')
|
||||
|
||||
return action_plan_data
|
||||
|
||||
|
||||
def create_test_action_plan(**kwargs):
|
||||
"""Create test action plan entry in DB and return Action Plan DB object.
|
||||
|
||||
Reference in New Issue
Block a user