def test_trigger_get_all_sort_keys_and_dir(self): values = [{'id': '001', 'name': 'trigger1', 'type': 'C'}, {'id': '002', 'name': 'trigger3', 'type': 'B'}, {'id': '003', 'name': 'trigger2', 'type': 'A'}] for v in values: self._create_trigger(self.ctx, **v) triggers = db_api.trigger_get_all(self.ctx, sort_keys=['name', 'type'], sort_dir='asc') self.assertEqual(3, len(triggers)) # Sorted by name self.assertEqual('001', triggers[0].id) self.assertEqual('003', triggers[1].id) self.assertEqual('002', triggers[2].id) triggers = db_api.trigger_get_all(self.ctx, sort_keys=['type', 'name'], sort_dir='asc') self.assertEqual(3, len(triggers)) # Sorted by levels (ascending) self.assertEqual('003', triggers[0].id) self.assertEqual('002', triggers[1].id) self.assertEqual('001', triggers[2].id) triggers = db_api.trigger_get_all(self.ctx, sort_keys=['type', 'name'], sort_dir='desc') self.assertEqual(3, len(triggers)) # Sorted by statuses (descending) self.assertEqual('001', triggers[0].id) self.assertEqual('002', triggers[1].id) self.assertEqual('003', triggers[2].id)
def test_trigger_get_all_with_filters(self): for name in ['trigger1', 'trigger2']: self._create_trigger(self.ctx, name=name) filters = {'name': ['trigger1', 'triggerx']} results = db_api.trigger_get_all(self.ctx, filters=filters) self.assertEqual(1, len(results)) self.assertEqual('trigger1', results[0]['name']) filters = {'name': 'trigger1'} results = db_api.trigger_get_all(self.ctx, filters=filters) self.assertEqual(1, len(results)) self.assertEqual('trigger1', results[0]['name'])
def test_trigger_get_all_used_sort_keys(self): ids = ['trigger1', 'trigger2', 'trigger3'] for pid in ids: self._create_trigger(self.ctx, id=pid) mock_paginate = self.patchobject(db_api.utils, 'paginate_query') sort_keys = ['created_time', 'id', 'name', 'type', 'updated_time'] db_api.trigger_get_all(self.ctx, sort_keys=sort_keys) args = mock_paginate.call_args[0] used_sort_keys = set(args[3]) expected_keys = set( ['id', 'type', 'name', 'created_time', 'updated_time']) self.assertEqual(expected_keys, used_sort_keys)
def test_trigger_get_all_used_sort_keys(self): ids = ['trigger1', 'trigger2', 'trigger3'] for pid in ids: self._create_trigger(self.ctx, id=pid) mock_paginate = self.patchobject(db_api.utils, 'paginate_query') sort_keys = ['created_time', 'id', 'name', 'type', 'updated_time'] db_api.trigger_get_all(self.ctx, sort_keys=sort_keys) args = mock_paginate.call_args[0] used_sort_keys = set(args[3]) expected_keys = set(['id', 'type', 'name', 'created_time', 'updated_time']) self.assertEqual(expected_keys, used_sort_keys)
def test_trigger_get_all_with_empty_filters(self): for name in ['trigger1', 'trigger2']: self._create_trigger(self.ctx, name=name) filters = None results = db_api.trigger_get_all(self.ctx, filters=filters) self.assertEqual(2, len(results))
def test_trigger_get_all_with_limit_marker(self): ids = ['trigger1', 'trigger2', 'trigger3'] for pid in ids: timestamp = timeutils.utcnow() self._create_trigger(self.ctx, id=pid, created_time=timestamp) # different limit settings triggers = db_api.trigger_get_all(self.ctx, limit=1) self.assertEqual(1, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, limit=2) self.assertEqual(2, len(triggers)) # a large limit triggers = db_api.trigger_get_all(self.ctx, limit=5) self.assertEqual(3, len(triggers)) # use marker here triggers = db_api.trigger_get_all(self.ctx, marker='trigger1') self.assertEqual(2, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, marker='trigger2') self.assertEqual(1, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, marker='trigger3') self.assertEqual(0, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, limit=1, marker='trigger1') self.assertEqual(1, len(triggers))
def test_trigger_get_all_sort_keys_and_dir(self): values = [{ 'id': '001', 'name': 'trigger1', 'type': 'C' }, { 'id': '002', 'name': 'trigger3', 'type': 'B' }, { 'id': '003', 'name': 'trigger2', 'type': 'A' }] for v in values: self._create_trigger(self.ctx, **v) triggers = db_api.trigger_get_all(self.ctx, sort_keys=['name', 'type'], sort_dir='asc') self.assertEqual(3, len(triggers)) # Sorted by name self.assertEqual('001', triggers[0].id) self.assertEqual('003', triggers[1].id) self.assertEqual('002', triggers[2].id) triggers = db_api.trigger_get_all(self.ctx, sort_keys=['type', 'name'], sort_dir='asc') self.assertEqual(3, len(triggers)) # Sorted by levels (ascending) self.assertEqual('003', triggers[0].id) self.assertEqual('002', triggers[1].id) self.assertEqual('001', triggers[2].id) triggers = db_api.trigger_get_all(self.ctx, sort_keys=['type', 'name'], sort_dir='desc') self.assertEqual(3, len(triggers)) # Sorted by statuses (descending) self.assertEqual('001', triggers[0].id) self.assertEqual('002', triggers[1].id) self.assertEqual('003', triggers[2].id)
def test_trigger_get_all_default_sort_dir(self): triggers = [] for x in range(3): trigger = self._create_trigger(self.ctx, created_time=timeutils.utcnow()) triggers.append(trigger) results = db_api.trigger_get_all(self.ctx, sort_dir='asc') self.assertEqual(3, len(results)) self.assertEqual(triggers[0].id, results[0].id) self.assertEqual(triggers[1].id, results[1].id) self.assertEqual(triggers[2].id, results[2].id)
def test_trigger_get_all(self): ids = ['trigger1', 'trigger2'] for pid in ids: self._create_trigger(self.ctx, id=pid) triggers = db_api.trigger_get_all(self.ctx) self.assertEqual(2, len(triggers)) trigger_ids = [p.id for p in triggers] for pid in ids: self.assertIn(pid, trigger_ids) # test show_deleted here db_api.trigger_delete(self.ctx, triggers[1].id) # after delete one of them triggers = db_api.trigger_get_all(self.ctx) self.assertEqual(1, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, show_deleted=False) self.assertEqual(1, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, show_deleted=True) self.assertEqual(2, len(triggers)) # after delete both triggers db_api.trigger_delete(self.ctx, triggers[0].id) triggers = db_api.trigger_get_all(self.ctx) self.assertEqual(0, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, show_deleted=True) self.assertEqual(2, len(triggers))
def test_trigger_get_all_project_safe(self): self._create_trigger(self.ctx, id='ID1', project='P1') triggers = db_api.trigger_get_all(self.ctx) self.assertEqual(0, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, project_safe=True) self.assertEqual(0, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, project_safe=False) self.assertEqual(1, len(triggers)) self.ctx.project = 'P1' triggers = db_api.trigger_get_all(self.ctx) self.assertEqual(1, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, project_safe=True) self.assertEqual(1, len(triggers)) triggers = db_api.trigger_get_all(self.ctx, project_safe=False) self.assertEqual(1, len(triggers))
def test_trigger_get_all_sort_keys_wont_change(self): sort_keys = ['id'] db_api.trigger_get_all(self.ctx, sort_keys=sort_keys) self.assertEqual(['id'], sort_keys)