def test_list_schedules(self, mock_parse_request, *args): mock_parse_request.return_value = ({}, {}) schedule_servicer = Schedule() schedules_info = schedule_servicer.list({}, {}) print_message(schedules_info, 'test_list_schedules') self.assertIsInstance(schedules_info, schedule_pb2.SchedulesInfo) self.assertIsInstance(schedules_info.results[0], schedule_pb2.ScheduleInfo) self.assertEqual(schedules_info.total_count, 10)
def test_disable_schedule(self, mock_parse_request, *args): params = { 'schedule_id': utils.generate_id('schedule'), 'state': 'DISABLED', 'domain_id': utils.generate_id('domain') } mock_parse_request.return_value = (params, {}) schedule_servicer = Schedule() schedule_info = schedule_servicer.disable({}, {}) print_message(schedule_info, 'test_disable_schedule') self.assertIsInstance(schedule_info, schedule_pb2.ScheduleInfo) self.assertEqual(schedule_info.state, schedule_pb2.ScheduleInfo.State.DISABLED)
def test_update_schedule(self, mock_parse_request, *args): params = { 'schedule_id': utils.generate_id('schedule'), 'schedule': { 'cron': '* * * * *' }, 'tags': { 'update_key': 'update_value' }, 'domain_id': utils.generate_id('domain') } mock_parse_request.return_value = (params, {}) schedule_servicer = Schedule() schedule_info = schedule_servicer.update({}, {}) print_message(schedule_info, 'test_update_schedule') schedule_data = MessageToDict(schedule_info, preserving_proto_field_name=True) self.assertIsInstance(schedule_info, schedule_pb2.ScheduleInfo) self.assertEqual(schedule_data['schedule'], params['schedule']) self.assertDictEqual(schedule_data['tags'], params['tags'])
def test_add_schedule(self, mock_parse_request, *args): params = { 'topic': utils.random_string(), 'options': { 'aggregate': [ { 'query': { 'resource_type': 'identity.Project', 'query': { 'aggregate': [ { 'group': { 'keys': [ { 'key': 'project_id', 'name': 'project_id' }, { 'key': 'name', 'name': 'project_name' } ] } } ] } } }, { 'join': { 'resource_type': 'inventory.Server', 'type': 'LEFT', 'keys': ['project_id'], 'query': { 'aggregate': [ { 'group': { 'keys': [ { 'key': 'project_id', 'name': 'project_id' } ], 'fields': [ { 'operator': 'count', 'name': 'server_count' } ] } } ] } } }, { 'join': { 'resource_type': 'inventory.CloudService', 'type': 'LEFT', 'keys': ['project_id'], 'query': { 'aggregate': [ { 'group': { 'keys': [ { 'key': 'project_id', 'name': 'project_id' } ], 'fields': [ { 'operator': 'count', 'name': 'cloud_service_count' } ] } } ] } } }, { 'formula': { 'eval': 'resource_count = server_count + cloud_service_count' } }, { 'sort': { 'key': 'resource_count', 'desc': True } } ], 'page': { 'limit': 5 } }, 'schedule': { 'cron': '*/5 * * * *', 'interval': 5, 'minutes': [0, 10, 20, 30, 40, 50], 'hours': [0, 6, 12, 18] }, 'tags': { utils.random_string(): utils.random_string() }, 'domain_id': utils.generate_id('domain') } mock_parse_request.return_value = (params, {}) schedule_servicer = Schedule() schedule_info = schedule_servicer.add({}, {}) print_message(schedule_info, 'test_add_schedule') schedule_data = MessageToDict(schedule_info, preserving_proto_field_name=True) self.assertIsInstance(schedule_info, schedule_pb2.ScheduleInfo) self.assertEqual(schedule_info.topic, params['topic']) self.assertEqual(schedule_info.state, schedule_pb2.ScheduleInfo.State.ENABLED) self.assertEqual(schedule_data['options'], params['options']) self.assertDictEqual(schedule_data['schedule'], params['schedule']) self.assertDictEqual(schedule_data['tags'], params['tags']) self.assertEqual(schedule_info.domain_id, params['domain_id']) self.assertIsNotNone(getattr(schedule_info, 'created_at', None))