def query_single_train_task(): """Query single train task""" plugin_name = request.args.get('plugin_name') train_id = get_train_id(request) processor = TrainTaskManager(DATA_MANAGER) tasks = processor.get_single_train_task(train_id=train_id, plugin_name=plugin_name) return jsonify(tasks)
def query_plugins(): """Query plugins.""" train_id = get_train_id(request) manual_update = request.args.get('manual_update', default='false') manual_update = str_to_bool(manual_update, "manual_update") processor = TrainTaskManager(DATA_MANAGER) plugins = processor.get_plugins(train_id, manual_update) return jsonify(plugins)
def test_get_single_train_task_with_not_exists_train_id(self): """Test getting single train task with not exists train_id.""" train_task_manager = TrainTaskManager(self._mock_data_manager) for plugin_name in PluginNameEnum.list_members(): test_train_id = "not_exist_id" with pytest.raises(TrainJobNotExistError) as exc_info: _ = train_task_manager.get_single_train_task(plugin_name, test_train_id) assert exc_info.value.message == "Train job is not exist. " \ "Detail: Can not find the train job in data manager." assert exc_info.value.error_code == '50545005'
def test_get_plugins_with_train_id(self): """Test getting plugins with train id.""" train_task_manager = TrainTaskManager(self._mock_data_manager) for train_id in self._train_id_list: result = train_task_manager.get_plugins(train_id) plugins = result.get('plugins') for plugin_name in plugins: if plugins.get(plugin_name): assert train_id in self._plugins_id_map.get(plugin_name) else: assert train_id not in self._plugins_id_map.get(plugin_name)
def test_get_single_train_task_with_not_exists_train_id(self, load_data): """Test getting single train task with not exists train_id.""" train_task_manager = TrainTaskManager(self._mock_data_manager) for plugin_name in PluginNameEnum.list_members(): test_train_id = "not_exist_id" with pytest.raises(ParamValueError) as exc_info: _ = train_task_manager.get_single_train_task( plugin_name, test_train_id) assert exc_info.type == ParamValueError assert exc_info.value.message == "Invalid parameter value. Can not find " \ "the train job in data manager." assert exc_info.value.error_code == '50540002'
def test_get_single_train_task_with_params(self): """Test getting single train task with params.""" train_task_manager = TrainTaskManager(self._mock_data_manager) for plugin_name in PluginNameEnum.list_members(): for test_train_id in self._train_id_list: result = train_task_manager.get_single_train_task(plugin_name, test_train_id) tags = result.get("train_jobs")[0].get("tags") # if it is a UUID if tags: assert test_train_id in self._plugins_id_map.get(plugin_name) else: assert test_train_id not in self._plugins_id_map.get(plugin_name)
def cache_train_jobs(): """ Cache train jobs.""" data = request.get_json(silent=True) if data is None: raise ParamMissError('train_ids') train_ids = data.get('train_ids') if train_ids is None: raise ParamMissError('train_ids') processor = TrainTaskManager(DATA_MANAGER) cache_result = processor.cache_train_jobs(train_ids) return jsonify({'cache_result': cache_result})
def query_train_jobs(): """Query train jobs.""" offset = request.args.get("offset", default=0) limit = request.args.get("limit", default=10) offset = Validation.check_offset(offset=offset) limit = Validation.check_limit(limit, min_value=1, max_value=SummaryWatcher.MAX_SUMMARY_DIR_COUNT) processor = TrainTaskManager(DATA_MANAGER) total, train_jobs = processor.query_train_jobs(offset, limit) return jsonify({ 'name': os.path.basename(os.path.realpath(settings.SUMMARY_BASE_DIR)), 'total': total, 'train_jobs': train_jobs, })
def test_cache_train_jobs(self): """Test caching train jobs with train ids.""" train_task_manager = TrainTaskManager(self._mock_data_manager) cache_result = train_task_manager.cache_train_jobs(self._train_id_list) assert len(self._train_id_list) == len(cache_result)