def audit_template_post_data(**kw): attrs = audit_template_ctrl.AuditTemplatePostType._wsme_attributes audit_template = db_utils.get_test_audit_template() fields = [field.key for field in attrs] post_data = {k: v for k, v in audit_template.items() if k in fields} post_data.update({k: v for k, v in kw.items() if k in fields}) return post_data
def test_get_audit_list_with_filter_by_audit_template_name(self): audit_template = self.dbapi.create_audit_template( utils.get_test_audit_template( uuid=w_utils.generate_uuid(), name='My Audit Template 1', description='Description of my audit template 1', host_aggregate=5, goal='DUMMY', extra={'automatic': True}) ) audit = self._create_test_audit( type='ONESHOT', uuid=w_utils.generate_uuid(), deadline=None, state='ONGOING', audit_template_id=audit_template.id) res = self.dbapi.get_audit_list( self.context, filters={'audit_template_name': audit_template.name}) for r in res: self.assertEqual(audit['audit_template_id'], r.audit_template_id)
def setUp(self): super(TestAuditTemplateObject, self).setUp() self.fake_audit_template = utils.get_test_audit_template() self.fake_goal1 = utils.create_test_goal( id=1, uuid=w_utils.generate_uuid(), name="DUMMY") self.fake_goal2 = utils.create_test_goal( id=2, uuid=w_utils.generate_uuid(), name="BALANCE_LOAD")
def post_get_test_audit(**kw): audit = api_utils.audit_post_data(**kw) audit_template = db_utils.get_test_audit_template() del audit['audit_template_id'] audit['audit_template_uuid'] = kw.get('audit_template_uuid', audit_template['uuid']) return audit
def prepare_audit_template_strategy_with_parameter(self): fake_spec = { "properties": { "fake1": { "description": "number parameter example", "type": "number", "default": 3.2, "minimum": 1.0, "maximum": 10.2, } } } template_uuid = 'e74c40e0-d825-11e2-a28f-0800200c9a67' strategy_uuid = 'e74c40e0-d825-11e2-a28f-0800200c9a68' template_name = 'my template' strategy_name = 'my strategy' strategy_id = 3 strategy = db_utils.get_test_strategy(parameters_spec=fake_spec, id=strategy_id, uuid=strategy_uuid, name=strategy_name) obj_utils.create_test_strategy(self.context, parameters_spec=fake_spec, id=strategy_id, uuid=strategy_uuid, name=strategy_name) obj_utils.create_test_audit_template(self.context, strategy_id=strategy_id, uuid=template_uuid, name='name') audit_template = db_utils.get_test_audit_template( strategy_id=strategy['id'], uuid=template_uuid, name=template_name) return audit_template
def post_get_test_audit(**kw): audit = api_utils.audit_post_data(**kw) audit_template = db_utils.get_test_audit_template() del audit['audit_template_id'] audit['audit_template_uuid'] = kw.get('audit_template_uuid', audit_template['uuid']) return audit
def setUp(self): super(TestAuditTemplateObject, self).setUp() self.fake_audit_template = utils.get_test_audit_template() self.fake_goal1 = utils.create_test_goal(id=1, uuid=w_utils.generate_uuid(), name="DUMMY") self.fake_goal2 = utils.create_test_goal(id=2, uuid=w_utils.generate_uuid(), name="BALANCE_LOAD")
def get_test_audit_template(context, **kw): """Return a AuditTemplate object with appropriate attributes. NOTE: The object leaves the attributes marked as changed, such that a create() could be used to commit it to the DB. """ obj_cls = objects.AuditTemplate db_data = db_utils.get_test_audit_template(**kw) obj_data = _load_related_objects(context, obj_cls, db_data) return _load_test_obj(context, obj_cls, obj_data, **kw)
def post_get_test_audit(**kw): audit = api_utils.audit_post_data(**kw) audit_template = db_utils.get_test_audit_template() goal = db_utils.get_test_goal() del_keys = ['goal_id', 'strategy_id'] add_keys = {'audit_template_uuid': audit_template['uuid'], 'goal': goal['uuid'], } for k in del_keys: del audit[k] for k in add_keys: audit[k] = kw.get(k, add_keys[k]) return audit
def post_get_test_audit_with_predefined_strategy(**kw): spec = kw.pop('strategy_parameters_spec', {}) strategy_id = 2 strategy = db_utils.get_test_strategy(parameters_spec=spec, id=strategy_id) audit_template = db_utils.get_test_audit_template( strategy_id=strategy['id']) audit = api_utils.audit_post_data(**kw) del audit['audit_template_id'] audit['audit_template_uuid'] = audit_template['uuid'] return audit
def get_test_audit_template(context, **kw): """Return a AuditTemplate object with appropriate attributes. NOTE: The object leaves the attributes marked as changed, such that a create() could be used to commit it to the DB. """ db_audit_template = db_utils.get_test_audit_template(**kw) # Let DB generate ID if it isn't specified explicitly if 'id' not in kw: del db_audit_template['id'] audit_template = objects.AuditTemplate(context) for key in db_audit_template: setattr(audit_template, key, db_audit_template[key]) return audit_template
def get_test_audit_template(context, **kw): """Return a AuditTemplate object with appropriate attributes. NOTE: The object leaves the attributes marked as changed, such that a create() could be used to commit it to the DB. """ db_audit_template = db_utils.get_test_audit_template(**kw) # Let DB generate ID if it isn't specified explicitly if 'id' not in kw: del db_audit_template['id'] audit_template = objects.AuditTemplate(context) for key in db_audit_template: setattr(audit_template, key, db_audit_template[key]) return audit_template
def post_get_test_audit_with_predefined_strategy(**kw): spec = kw.pop('strategy_parameters_spec', {}) strategy_id = 2 strategy = db_utils.get_test_strategy(parameters_spec=spec, id=strategy_id) audit = api_utils.audit_post_data(**kw) audit_template = db_utils.get_test_audit_template( strategy_id=strategy['id']) del_keys = ['goal_id', 'strategy_id'] add_keys = {'audit_template_uuid': audit_template['uuid'], } for k in del_keys: del audit[k] for k in add_keys: audit[k] = kw.get(k, add_keys[k]) return audit
def post_get_test_audit(**kw): audit = api_utils.audit_post_data(**kw) audit_template = db_utils.get_test_audit_template() goal = db_utils.get_test_goal() del_keys = ['goal_id', 'strategy_id'] del_keys.extend(kw.get('params_to_exclude', [])) add_keys = {'audit_template_uuid': audit_template['uuid'], 'goal': goal['uuid'], } if kw.get('use_named_goal'): add_keys['goal'] = 'TEST' for k in add_keys: audit[k] = kw.get(k, add_keys[k]) for k in del_keys: del audit[k] return audit
def test_get_audit_list_with_filter_by_audit_template_name(self): audit_template = self.dbapi.create_audit_template( utils.get_test_audit_template( uuid=w_utils.generate_uuid(), name='My Audit Template 1', description='Description of my audit template 1', host_aggregate=5, goal='DUMMY', extra={'automatic': True})) audit = self._create_test_audit(type='ONESHOT', uuid=w_utils.generate_uuid(), deadline=None, state='ONGOING', audit_template_id=audit_template.id) res = self.dbapi.get_audit_list( self.context, filters={'audit_template_name': audit_template.name}) for r in res: self.assertEqual(audit['audit_template_id'], r.audit_template_id)
def audit_template_post_data(**kw): audit_template = db_utils.get_test_audit_template(**kw) internal = audit_template_ctrl.AuditTemplatePatchType.internal_attrs() return remove_internal(audit_template, internal)
def audit_template_post_data(**kw): audit_template = db_utils.get_test_audit_template(**kw) internal = audit_template_ctrl.AuditTemplatePatchType.internal_attrs() return remove_internal(audit_template, internal)
def _create_test_audit_template(self, **kwargs): audit_template = utils.get_test_audit_template(**kwargs) self.dbapi.create_audit_template(audit_template) return audit_template
def _create_test_audit_template(self, **kwargs): audit_template = utils.get_test_audit_template(**kwargs) self.dbapi.create_audit_template(audit_template) return audit_template
def setUp(self): super(TestAuditTemplateObject, self).setUp() self.fake_audit_template = utils.get_test_audit_template()
class TestAuditTemplateObject(base.DbTestCase): goal_id = 1 goal_data = utils.get_test_goal(id=goal_id, uuid=w_utils.generate_uuid(), name="DUMMY") scenarios = [ ('non_eager', dict(eager=False, fake_audit_template=utils.get_test_audit_template( created_at=datetime.datetime.utcnow(), goal_id=goal_id))), ('eager_with_non_eager_load', dict(eager=True, fake_audit_template=utils.get_test_audit_template( created_at=datetime.datetime.utcnow(), goal_id=goal_id))), ('eager_with_eager_load', dict(eager=True, fake_audit_template=utils.get_test_audit_template( created_at=datetime.datetime.utcnow(), goal_id=goal_id, goal=goal_data))), ] def setUp(self): super(TestAuditTemplateObject, self).setUp() self.fake_goal = utils.create_test_goal(**self.goal_data) def eager_load_audit_template_assert(self, audit_template, goal): if self.eager: self.assertIsNotNone(audit_template.goal) fields_to_check = set(super( objects.Goal, objects.Goal).fields).symmetric_difference(objects.Goal.fields) db_data = { k: v for k, v in goal.as_dict().items() if k in fields_to_check } object_data = { k: v for k, v in audit_template.goal.as_dict().items() if k in fields_to_check } self.assertEqual(db_data, object_data) @mock.patch.object(db_api.Connection, 'get_audit_template_by_id') def test_get_by_id(self, mock_get_audit_template): mock_get_audit_template.return_value = self.fake_audit_template audit_template_id = self.fake_audit_template['id'] audit_template = objects.AuditTemplate.get(self.context, audit_template_id, eager=self.eager) mock_get_audit_template.assert_called_once_with(self.context, audit_template_id, eager=self.eager) self.assertEqual(self.context, audit_template._context) self.eager_load_audit_template_assert(audit_template, self.fake_goal) @mock.patch.object(db_api.Connection, 'get_audit_template_by_uuid') def test_get_by_uuid(self, mock_get_audit_template): mock_get_audit_template.return_value = self.fake_audit_template uuid = self.fake_audit_template['uuid'] audit_template = objects.AuditTemplate.get(self.context, uuid, eager=self.eager) mock_get_audit_template.assert_called_once_with(self.context, uuid, eager=self.eager) self.assertEqual(self.context, audit_template._context) self.eager_load_audit_template_assert(audit_template, self.fake_goal) @mock.patch.object(db_api.Connection, 'get_audit_template_by_name') def test_get_by_name(self, mock_get_audit_template): mock_get_audit_template.return_value = self.fake_audit_template name = self.fake_audit_template['name'] audit_template = objects.AuditTemplate.get_by_name(self.context, name, eager=self.eager) mock_get_audit_template.assert_called_once_with(self.context, name, eager=self.eager) self.assertEqual(self.context, audit_template._context) self.eager_load_audit_template_assert(audit_template, self.fake_goal) def test_get_bad_id_and_uuid(self): self.assertRaises(exception.InvalidIdentity, objects.AuditTemplate.get, self.context, 'not-a-uuid', eager=self.eager) @mock.patch.object(db_api.Connection, 'get_audit_template_list') def test_list(self, mock_get_list): mock_get_list.return_value = [self.fake_audit_template] audit_templates = objects.AuditTemplate.list(self.context, eager=self.eager) mock_get_list.assert_called_once_with(self.context, eager=self.eager, filters=None, limit=None, marker=None, sort_dir=None, sort_key=None) self.assertEqual(1, len(audit_templates)) self.assertIsInstance(audit_templates[0], objects.AuditTemplate) self.assertEqual(self.context, audit_templates[0]._context) for audit_template in audit_templates: self.eager_load_audit_template_assert(audit_template, self.fake_goal) @mock.patch.object(db_api.Connection, 'update_audit_template') @mock.patch.object(db_api.Connection, 'get_audit_template_by_uuid') def test_save(self, mock_get_audit_template, mock_update_audit_template): mock_get_audit_template.return_value = self.fake_audit_template fake_saved_audit_template = self.fake_audit_template.copy() fake_saved_audit_template['updated_at'] = datetime.datetime.utcnow() mock_update_audit_template.return_value = fake_saved_audit_template uuid = self.fake_audit_template['uuid'] audit_template = objects.AuditTemplate.get_by_uuid(self.context, uuid, eager=self.eager) audit_template.goal_id = self.fake_goal.id audit_template.save() mock_get_audit_template.assert_called_once_with(self.context, uuid, eager=self.eager) mock_update_audit_template.assert_called_once_with( uuid, {'goal_id': self.fake_goal.id}) self.assertEqual(self.context, audit_template._context) self.eager_load_audit_template_assert(audit_template, self.fake_goal) @mock.patch.object(db_api.Connection, 'get_audit_template_by_uuid') def test_refresh(self, mock_get_audit_template): returns = [ dict(self.fake_audit_template, name="first name"), dict(self.fake_audit_template, name="second name") ] mock_get_audit_template.side_effect = returns uuid = self.fake_audit_template['uuid'] expected = [ mock.call(self.context, uuid, eager=self.eager), mock.call(self.context, uuid, eager=self.eager) ] audit_template = objects.AuditTemplate.get(self.context, uuid, eager=self.eager) self.assertEqual("first name", audit_template.name) audit_template.refresh(eager=self.eager) self.assertEqual("second name", audit_template.name) self.assertEqual(expected, mock_get_audit_template.call_args_list) self.assertEqual(self.context, audit_template._context) self.eager_load_audit_template_assert(audit_template, self.fake_goal)
def setUp(self): super(TestCreateDeleteAuditTemplateObject, self).setUp() self.fake_audit_template = utils.get_test_audit_template( created_at=datetime.datetime.utcnow())
def setUp(self): super(TestAuditTemplateObject, self).setUp() self.fake_audit_template = utils.get_test_audit_template()