提交 59f0bce6 编写于 作者: M mindspore-ci-bot 提交者: Gitee

!10 Break down the exception so that the UI can recognize specific exception scenarios

Merge pull request !10 from ougongchang/fixbug_exception
...@@ -90,3 +90,51 @@ class MaxCountExceededError(MindInsightException): ...@@ -90,3 +90,51 @@ class MaxCountExceededError(MindInsightException):
super(MaxCountExceededError, self).__init__(DataVisualErrors.MAX_COUNT_EXCEEDED_ERROR, super(MaxCountExceededError, self).__init__(DataVisualErrors.MAX_COUNT_EXCEEDED_ERROR,
error_msg, error_msg,
http_code=400) http_code=400)
class TrainJobNotExistError(MindInsightException):
"""Can not find the given train job."""
def __init__(self, error_detail=None):
if error_detail is None:
error_msg = f"Train job is not exist."
else:
error_msg = f"Train job is not exist. Detail: {error_detail}"
super(TrainJobNotExistError, self).__init__(DataVisualErrors.TRAIN_JOB_NOT_EXIST,
error_msg,
http_code=400)
class PluginNotAvailableError(MindInsightException):
"""The given plugin is not available."""
def __init__(self, error_detail):
error_msg = f"Plugin is not available. Detail: {error_detail}"
super(PluginNotAvailableError, self).__init__(DataVisualErrors.PLUGIN_NOT_AVAILABLE,
error_msg,
http_code=400)
class GraphNotExistError(MindInsightException):
"""Can not found the given graph."""
def __init__(self):
error_msg = 'Graph is not exist.'
super(GraphNotExistError, self).__init__(DataVisualErrors.GRAPH_NOT_EXIST,
error_msg,
http_code=400)
class ImageNotExistError(MindInsightException):
"""Unable to get a image based on a given condition."""
def __init__(self, error_detail):
error_msg = f'Image is not exist. Detail: {error_detail}'
super(ImageNotExistError, self).__init__(DataVisualErrors.IMAGE_NOT_EXIST,
error_msg,
http_code=400)
class ScalarNotExistError(MindInsightException):
"""Unable to get scalar values based on a given condition."""
def __init__(self, error_detail):
error_msg = f'Scalar value is not exist. Detail: {error_detail}'
super(ScalarNotExistError, self).__init__(DataVisualErrors.SCALAR_NOT_EXIST,
error_msg,
http_code=400)
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
from numbers import Number from numbers import Number
from mindinsight.utils.exceptions import ParamValueError from mindinsight.utils.exceptions import ParamValueError
from mindinsight.utils.exceptions import ParamMissError from mindinsight.utils.exceptions import ParamMissError
from mindinsight.datavisual.common.exceptions import PluginNotAvailableError
from mindinsight.datavisual.common.enums import PluginNameEnum from mindinsight.datavisual.common.enums import PluginNameEnum
from mindinsight.datavisual.utils.tools import to_int from mindinsight.datavisual.utils.tools import to_int
...@@ -94,9 +95,8 @@ class Validation: ...@@ -94,9 +95,8 @@ class Validation:
plugin_name (str): The plugin name. plugin_name (str): The plugin name.
Raises: Raises:
ParamValueError: When plugin name is not valid. PluginNotAvailableError: When plugin name is not valid.
""" """
plugin_name_list = PluginNameEnum.list_members() plugin_name_list = PluginNameEnum.list_members()
if plugin_name not in plugin_name_list: if plugin_name not in plugin_name_list:
raise ParamValueError("'plugin_name' only can be one of {}" raise PluginNotAvailableError(f"'plugin_name' only can be one of {plugin_name_list}")
"".format(plugin_name_list))
...@@ -30,6 +30,7 @@ from mindinsight.datavisual.common import exceptions ...@@ -30,6 +30,7 @@ from mindinsight.datavisual.common import exceptions
from mindinsight.datavisual.common.log import logger from mindinsight.datavisual.common.log import logger
from mindinsight.datavisual.common.enums import DataManagerStatus from mindinsight.datavisual.common.enums import DataManagerStatus
from mindinsight.datavisual.common.enums import PluginNameEnum from mindinsight.datavisual.common.enums import PluginNameEnum
from mindinsight.datavisual.common.exceptions import TrainJobNotExistError
from mindinsight.datavisual.data_transform.loader_generators.loader_generator import MAX_DATA_LOADER_SIZE from mindinsight.datavisual.data_transform.loader_generators.loader_generator import MAX_DATA_LOADER_SIZE
from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator
from mindinsight.utils.exceptions import MindInsightException from mindinsight.utils.exceptions import MindInsightException
...@@ -343,7 +344,7 @@ class DataManager: ...@@ -343,7 +344,7 @@ class DataManager:
self._check_status_valid() self._check_status_valid()
loader_pool = self._get_snapshot_loader_pool() loader_pool = self._get_snapshot_loader_pool()
if not self._is_loader_in_loader_pool(train_id, loader_pool): if not self._is_loader_in_loader_pool(train_id, loader_pool):
raise ParamValueError("Can not find any data in loader pool about the train job.") raise TrainJobNotExistError("Can not find the given train job in cache.")
data_loader = loader_pool[train_id].data_loader data_loader = loader_pool[train_id].data_loader
events_data = data_loader.get_events_data() events_data = data_loader.get_events_data()
...@@ -365,7 +366,7 @@ class DataManager: ...@@ -365,7 +366,7 @@ class DataManager:
loader_pool (dict[str, LoaderStruct]): Refer to self._loader_pool. loader_pool (dict[str, LoaderStruct]): Refer to self._loader_pool.
Raises: Raises:
ParamValueError: Can not found train job in data manager. TrainJobNotExistError: Can not find train job in data manager.
""" """
is_exist = False is_exist = False
if train_id in loader_pool: if train_id in loader_pool:
...@@ -375,7 +376,7 @@ class DataManager: ...@@ -375,7 +376,7 @@ class DataManager:
is_exist = True is_exist = True
break break
if not is_exist: if not is_exist:
raise ParamValueError("Can not find the train job in data manager.") raise TrainJobNotExistError("Can not find the train job in data manager.")
def _is_loader_in_loader_pool(self, train_id, loader_pool): def _is_loader_in_loader_pool(self, train_id, loader_pool):
""" """
...@@ -406,8 +407,7 @@ class DataManager: ...@@ -406,8 +407,7 @@ class DataManager:
"""Check if the status is valid to load data.""" """Check if the status is valid to load data."""
if self.status == DataManagerStatus.INIT.value: if self.status == DataManagerStatus.INIT.value:
raise exceptions.SummaryLogIsLoading("Data is being loaded, " raise exceptions.SummaryLogIsLoading("Data is being loaded, current status: %s." % self._status)
"current status: %s." % self._status)
def get_single_train_job(self, train_id, manual_update=False): def get_single_train_job(self, train_id, manual_update=False):
""" """
......
...@@ -40,9 +40,9 @@ class GraphProcessor(BaseProcessor): ...@@ -40,9 +40,9 @@ class GraphProcessor(BaseProcessor):
train_job = self._data_manager.get_train_job_by_plugin(train_id, PluginNameEnum.GRAPH.value) train_job = self._data_manager.get_train_job_by_plugin(train_id, PluginNameEnum.GRAPH.value)
if train_job is None: if train_job is None:
raise exceptions.SummaryLogPathInvalid() raise exceptions.TrainJobNotExistError()
if not train_job['tags']: if not train_job['tags']:
raise ParamValueError("Can not find any graph data in the train job.") raise exceptions.GraphNotExistError()
if tag is None: if tag is None:
tag = train_job['tags'][0] tag = train_job['tags'][0]
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
from mindinsight.datavisual.utils.tools import to_int from mindinsight.datavisual.utils.tools import to_int
from mindinsight.utils.exceptions import ParamValueError from mindinsight.utils.exceptions import ParamValueError
from mindinsight.datavisual.common.validation import Validation from mindinsight.datavisual.common.validation import Validation
from mindinsight.datavisual.common.exceptions import ImageNotExistError
from mindinsight.datavisual.processors.base_processor import BaseProcessor from mindinsight.datavisual.processors.base_processor import BaseProcessor
...@@ -46,7 +47,10 @@ class ImageProcessor(BaseProcessor): ...@@ -46,7 +47,10 @@ class ImageProcessor(BaseProcessor):
""" """
Validation.check_param_empty(train_id=train_id, tag=tag) Validation.check_param_empty(train_id=train_id, tag=tag)
result = [] result = []
try:
tensors = self._data_manager.list_tensors(train_id, tag) tensors = self._data_manager.list_tensors(train_id, tag)
except ParamValueError as ex:
raise ImageNotExistError(ex.message)
for tensor in tensors: for tensor in tensors:
# no tensor_proto in TensorEvent # no tensor_proto in TensorEvent
...@@ -75,7 +79,10 @@ class ImageProcessor(BaseProcessor): ...@@ -75,7 +79,10 @@ class ImageProcessor(BaseProcessor):
Validation.check_param_empty(train_id=train_id, tag=tag, step=step) Validation.check_param_empty(train_id=train_id, tag=tag, step=step)
step = to_int(step, "step") step = to_int(step, "step")
try:
tensors = self._data_manager.list_tensors(train_id, tag) tensors = self._data_manager.list_tensors(train_id, tag)
except ParamValueError as ex:
raise ImageNotExistError(ex.message)
image = None image = None
for tensor in tensors: for tensor in tensors:
...@@ -87,6 +94,6 @@ class ImageProcessor(BaseProcessor): ...@@ -87,6 +94,6 @@ class ImageProcessor(BaseProcessor):
break break
if image is None: if image is None:
raise ParamValueError("Can not find the step with given train job id and tag.") raise ImageNotExistError("Can not find the step with given train job id and tag.")
return image return image
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
# limitations under the License. # limitations under the License.
# ============================================================================ # ============================================================================
"""Scalar Processor APIs.""" """Scalar Processor APIs."""
from mindinsight.utils.exceptions import ParamValueError
from mindinsight.datavisual.common.exceptions import ScalarNotExistError
from mindinsight.datavisual.common.validation import Validation from mindinsight.datavisual.common.validation import Validation
from mindinsight.datavisual.processors.base_processor import BaseProcessor from mindinsight.datavisual.processors.base_processor import BaseProcessor
...@@ -33,7 +35,10 @@ class ScalarsProcessor(BaseProcessor): ...@@ -33,7 +35,10 @@ class ScalarsProcessor(BaseProcessor):
""" """
Validation.check_param_empty(train_id=train_id, tag=tag) Validation.check_param_empty(train_id=train_id, tag=tag)
job_response = [] job_response = []
try:
tensors = self._data_manager.list_tensors(train_id, tag) tensors = self._data_manager.list_tensors(train_id, tag)
except ParamValueError as ex:
raise ScalarNotExistError(ex.message)
for tensor in tensors: for tensor in tensors:
job_response.append({ job_response.append({
......
...@@ -38,7 +38,7 @@ class TrainTaskManager(BaseProcessor): ...@@ -38,7 +38,7 @@ class TrainTaskManager(BaseProcessor):
Validation.check_plugin_name(plugin_name=plugin_name) Validation.check_plugin_name(plugin_name=plugin_name)
train_job = self._data_manager.get_train_job_by_plugin(train_id=train_id, plugin_name=plugin_name) train_job = self._data_manager.get_train_job_by_plugin(train_id=train_id, plugin_name=plugin_name)
if train_job is None: if train_job is None:
raise exceptions.SummaryLogPathInvalid() raise exceptions.TrainJobNotExistError()
return dict(train_jobs=[train_job]) return dict(train_jobs=[train_job])
def get_plugins(self, train_id, manual_update=True): def get_plugins(self, train_id, manual_update=True):
......
...@@ -133,7 +133,7 @@ def get_train_id(request): ...@@ -133,7 +133,7 @@ def get_train_id(request):
try: try:
train_id = unquote(train_id, errors='strict') train_id = unquote(train_id, errors='strict')
except UnicodeDecodeError: except UnicodeDecodeError:
raise exceptions.ParamValueError('Unquote error with strict mode') raise exceptions.UrlDecodeError('Unquote train id error with strict mode')
return train_id return train_id
......
...@@ -40,6 +40,7 @@ class GeneralErrors(Enum): ...@@ -40,6 +40,7 @@ class GeneralErrors(Enum):
PATH_NOT_EXISTS_ERROR = 4 PATH_NOT_EXISTS_ERROR = 4
FILE_SYSTEM_PERMISSION_ERROR = 8 FILE_SYSTEM_PERMISSION_ERROR = 8
PORT_NOT_AVAILABLE_ERROR = 9 PORT_NOT_AVAILABLE_ERROR = 9
URL_DECODE_ERROR = 10
class LineageMgrErrors(Enum): class LineageMgrErrors(Enum):
...@@ -55,6 +56,9 @@ class DataVisualErrors(Enum): ...@@ -55,6 +56,9 @@ class DataVisualErrors(Enum):
TRAIN_JOB_NOT_EXIST = 5 TRAIN_JOB_NOT_EXIST = 5
SUMMARY_LOG_PATH_INVALID = 6 SUMMARY_LOG_PATH_INVALID = 6
SUMMARY_LOG_IS_LOADING = 7 SUMMARY_LOG_IS_LOADING = 7
SUMMARY_LOG_LOAD_FAILED = 8
NODE_NOT_IN_GRAPH_ERROR = 9 NODE_NOT_IN_GRAPH_ERROR = 9
PATH_NOT_DIRECTORY_ERROR = 10 PATH_NOT_DIRECTORY_ERROR = 10
PLUGIN_NOT_AVAILABLE = 11
GRAPH_NOT_EXIST = 12
IMAGE_NOT_EXIST = 13
SCALAR_NOT_EXIST = 14
...@@ -176,3 +176,12 @@ class UnknownError(MindInsightException): ...@@ -176,3 +176,12 @@ class UnknownError(MindInsightException):
GeneralErrors.UNKNOWN_ERROR, GeneralErrors.UNKNOWN_ERROR,
error_msg, error_msg,
http_code=500) http_code=500)
class UrlDecodeError(MindInsightException):
"""Url decoding failed"""
def __init__(self, error_detail):
error_msg = f"Url decode failed. Detail: {error_detail}"
super(UrlDecodeError, self).__init__(GeneralErrors.URL_DECODE_ERROR,
error_msg,
http_code=400)
...@@ -127,9 +127,8 @@ class TestSingleImage: ...@@ -127,9 +127,8 @@ class TestSingleImage:
assert response.status_code == 400 assert response.status_code == 400
response = response.get_json() response = response.get_json()
assert response['error_code'] == '50540002' assert response['error_code'] == '50545005'
assert response['error_msg'] == "Invalid parameter value. Can not find any data " \ assert response['error_msg'] == "Train job is not exist. Detail: Can not find the given train job in cache."
"in loader pool about the train job."
@pytest.mark.level1 @pytest.mark.level1
@pytest.mark.env_single @pytest.mark.env_single
...@@ -149,9 +148,9 @@ class TestSingleImage: ...@@ -149,9 +148,9 @@ class TestSingleImage:
assert response.status_code == 400 assert response.status_code == 400
response = response.get_json() response = response.get_json()
assert response['error_code'] == '50540002' assert response['error_code'] == '5054500D'
assert response['error_msg'] == "Invalid parameter value. Can not find any data " \ assert response['error_msg'] == "Image is not exist. Detail: Invalid parameter value. " \
"in this train job by given tag." "Can not find any data in this train job by given tag."
@pytest.mark.level1 @pytest.mark.level1
@pytest.mark.env_single @pytest.mark.env_single
...@@ -170,9 +169,9 @@ class TestSingleImage: ...@@ -170,9 +169,9 @@ class TestSingleImage:
assert response.status_code == 400 assert response.status_code == 400
response = response.get_json() response = response.get_json()
assert response['error_code'] == '50540002' assert response['error_code'] == '5054500D'
assert response['error_msg'] == "Invalid parameter value. Can not find the step " \ assert response['error_msg'] == "Image is not exist. Detail: " \
"with given train job id and tag." "Can not find the step with given train job id and tag."
@pytest.mark.level1 @pytest.mark.level1
@pytest.mark.env_single @pytest.mark.env_single
......
...@@ -89,9 +89,8 @@ class TestPlugins: ...@@ -89,9 +89,8 @@ class TestPlugins:
assert response.status_code == 400 assert response.status_code == 400
response = response.get_json() response = response.get_json()
assert response['error_code'] == '50540002' assert response['error_code'] == '50545005'
assert response['error_msg'] == "Invalid parameter value. Can not find " \ assert response['error_msg'] == "Train job is not exist. Detail: Can not find the train job in data manager."
"the train job in data manager."
@pytest.mark.level1 @pytest.mark.level1
@pytest.mark.env_single @pytest.mark.env_single
......
...@@ -64,9 +64,9 @@ class TestTrainTask: ...@@ -64,9 +64,9 @@ class TestTrainTask:
assert response.status_code == 400 assert response.status_code == 400
response = response.get_json() response = response.get_json()
assert response['error_code'] == '50540002' assert response['error_code'] == '5054500B'
assert response['error_msg'] == "Invalid parameter value. 'plugin_name' " \ assert response['error_msg'] == f"Plugin is not available. " \
"only can be one of {}".format(plugin_name_list) f"Detail: 'plugin_name' only can be one of {plugin_name_list}"
@patch.object(TrainTaskManager, 'get_single_train_task') @patch.object(TrainTaskManager, 'get_single_train_task')
def test_query_single_train_task_with_plugin_name_exists(self, mock_train_task_manager, client): def test_query_single_train_task_with_plugin_name_exists(self, mock_train_task_manager, client):
......
...@@ -28,6 +28,7 @@ from unittest.mock import Mock, patch ...@@ -28,6 +28,7 @@ from unittest.mock import Mock, patch
import pytest import pytest
from mindinsight.datavisual.common.enums import DataManagerStatus, PluginNameEnum from mindinsight.datavisual.common.enums import DataManagerStatus, PluginNameEnum
from mindinsight.datavisual.common.exceptions import TrainJobNotExistError
from mindinsight.datavisual.data_transform import data_manager, ms_data_loader from mindinsight.datavisual.data_transform import data_manager, ms_data_loader
from mindinsight.datavisual.data_transform.data_loader import DataLoader from mindinsight.datavisual.data_transform.data_loader import DataLoader
from mindinsight.datavisual.data_transform.data_manager import DataManager from mindinsight.datavisual.data_transform.data_manager import DataManager
...@@ -185,9 +186,10 @@ class TestDataManager: ...@@ -185,9 +186,10 @@ class TestDataManager:
d_manager._status = DataManagerStatus.LOADING.value d_manager._status = DataManagerStatus.LOADING.value
tag = 'image' tag = 'image'
train_job_01 = 'train_01' train_job_01 = 'train_01'
with pytest.raises(ParamValueError): with pytest.raises(TrainJobNotExistError) as ex_info:
d_manager.list_tensors(train_job_01, tag) d_manager.list_tensors(train_job_01, tag)
shutil.rmtree(summary_base_dir) shutil.rmtree(summary_base_dir)
assert ex_info.value.message == 'Train job is not exist. Detail: Can not find the given train job in cache.'
@patch.object(data_manager.DataLoaderGenerator, "generate_loaders") @patch.object(data_manager.DataLoaderGenerator, "generate_loaders")
def test_caching(self, mock_generate_loaders): def test_caching(self, mock_generate_loaders):
......
...@@ -26,6 +26,7 @@ import pytest ...@@ -26,6 +26,7 @@ import pytest
from mindinsight.datavisual.common import exceptions from mindinsight.datavisual.common import exceptions
from mindinsight.datavisual.common.enums import PluginNameEnum from mindinsight.datavisual.common.enums import PluginNameEnum
from mindinsight.datavisual.common.exceptions import GraphNotExistError
from mindinsight.datavisual.data_transform import data_manager from mindinsight.datavisual.data_transform import data_manager
from mindinsight.datavisual.data_transform.data_manager import DataManager from mindinsight.datavisual.data_transform.data_manager import DataManager
from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator
...@@ -102,16 +103,16 @@ class TestGraphProcessor: ...@@ -102,16 +103,16 @@ class TestGraphProcessor:
def test_get_nodes_with_not_exist_train_id(self): def test_get_nodes_with_not_exist_train_id(self):
"""Test getting nodes with not exist train id.""" """Test getting nodes with not exist train id."""
test_train_id = "not_exist_train_id" test_train_id = "not_exist_train_id"
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(exceptions.TrainJobNotExistError) as exc_info:
GraphProcessor(test_train_id, self._mock_data_manager) GraphProcessor(test_train_id, self._mock_data_manager)
assert "Can not find the train job in data manager." in exc_info.value.message assert "Train job is not exist. Detail: Can not find the train job in data manager." == exc_info.value.message
@pytest.mark.usefixtures('load_graph_record') @pytest.mark.usefixtures('load_graph_record')
@patch.object(DataManager, 'get_train_job_by_plugin') @patch.object(DataManager, 'get_train_job_by_plugin')
def test_get_nodes_with_loader_is_none(self, mock_get_train_job_by_plugin): def test_get_nodes_with_loader_is_none(self, mock_get_train_job_by_plugin):
"""Test get nodes with loader is None.""" """Test get nodes with loader is None."""
mock_get_train_job_by_plugin.return_value = None mock_get_train_job_by_plugin.return_value = None
with pytest.raises(exceptions.SummaryLogPathInvalid): with pytest.raises(exceptions.TrainJobNotExistError):
GraphProcessor(self._train_id, self._mock_data_manager) GraphProcessor(self._train_id, self._mock_data_manager)
assert mock_get_train_job_by_plugin.called assert mock_get_train_job_by_plugin.called
...@@ -223,7 +224,8 @@ class TestGraphProcessor: ...@@ -223,7 +224,8 @@ class TestGraphProcessor:
@pytest.mark.usefixtures('load_no_graph_record') @pytest.mark.usefixtures('load_no_graph_record')
def test_check_graph_status_no_graph(self): def test_check_graph_status_no_graph(self):
"""Test checking graph status no graph.""" """Test checking graph status no graph."""
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(GraphNotExistError) as exc_info:
GraphProcessor(self._train_id, self._mock_data_manager) GraphProcessor(self._train_id, self._mock_data_manager)
assert exc_info.value.message == "Invalid parameter value. Can not find any graph data " \
"in the train job." assert exc_info.value.error_code == '5054500C'
assert exc_info.value.message == "Graph is not exist."
...@@ -24,6 +24,8 @@ from unittest.mock import Mock ...@@ -24,6 +24,8 @@ from unittest.mock import Mock
import pytest import pytest
from mindinsight.datavisual.common.enums import PluginNameEnum from mindinsight.datavisual.common.enums import PluginNameEnum
from mindinsight.datavisual.common.exceptions import TrainJobNotExistError
from mindinsight.datavisual.common.exceptions import ImageNotExistError
from mindinsight.datavisual.data_transform import data_manager from mindinsight.datavisual.data_transform import data_manager
from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator
from mindinsight.datavisual.processors.images_processor import ImageProcessor from mindinsight.datavisual.processors.images_processor import ImageProcessor
...@@ -107,11 +109,11 @@ class TestImagesProcessor: ...@@ -107,11 +109,11 @@ class TestImagesProcessor:
"""Test getting metadata list with not exist id.""" """Test getting metadata list with not exist id."""
test_train_id = 'not_exist_id' test_train_id = 'not_exist_id'
image_processor = ImageProcessor(self._mock_data_manager) image_processor = ImageProcessor(self._mock_data_manager)
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(TrainJobNotExistError) as exc_info:
image_processor.get_metadata_list(test_train_id, self._tag_name) image_processor.get_metadata_list(test_train_id, self._tag_name)
assert exc_info.value.error_code == '50540002' assert exc_info.value.error_code == '50545005'
assert "Can not find any data in loader pool about the train job." in exc_info.value.message assert "Train job is not exist. Detail: Can not find the given train job in cache." == exc_info.value.message
@pytest.mark.usefixtures('load_image_record') @pytest.mark.usefixtures('load_image_record')
def test_get_metadata_list_with_not_exist_tag(self): def test_get_metadata_list_with_not_exist_tag(self):
...@@ -120,10 +122,10 @@ class TestImagesProcessor: ...@@ -120,10 +122,10 @@ class TestImagesProcessor:
image_processor = ImageProcessor(self._mock_data_manager) image_processor = ImageProcessor(self._mock_data_manager)
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(ImageNotExistError) as exc_info:
image_processor.get_metadata_list(self._train_id, test_tag_name) image_processor.get_metadata_list(self._train_id, test_tag_name)
assert exc_info.value.error_code == '50540002' assert exc_info.value.error_code == '5054500D'
assert "Can not find any data in this train job by given tag." in exc_info.value.message assert "Can not find any data in this train job by given tag." in exc_info.value.message
@pytest.mark.usefixtures('load_image_record') @pytest.mark.usefixtures('load_image_record')
...@@ -144,11 +146,11 @@ class TestImagesProcessor: ...@@ -144,11 +146,11 @@ class TestImagesProcessor:
test_step = self._steps_list[0] test_step = self._steps_list[0]
image_processor = ImageProcessor(self._mock_data_manager) image_processor = ImageProcessor(self._mock_data_manager)
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(TrainJobNotExistError) as exc_info:
image_processor.get_single_image(test_train_id, test_tag_name, test_step) image_processor.get_single_image(test_train_id, test_tag_name, test_step)
assert exc_info.value.error_code == '50540002' assert exc_info.value.error_code == '50545005'
assert "Can not find any data in loader pool about the train job." in exc_info.value.message assert "Train job is not exist. Detail: Can not find the given train job in cache." == exc_info.value.message
@pytest.mark.usefixtures('load_image_record') @pytest.mark.usefixtures('load_image_record')
def test_get_single_image_with_not_exist_tag(self): def test_get_single_image_with_not_exist_tag(self):
...@@ -158,10 +160,10 @@ class TestImagesProcessor: ...@@ -158,10 +160,10 @@ class TestImagesProcessor:
image_processor = ImageProcessor(self._mock_data_manager) image_processor = ImageProcessor(self._mock_data_manager)
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(ImageNotExistError) as exc_info:
image_processor.get_single_image(self._train_id, test_tag_name, test_step) image_processor.get_single_image(self._train_id, test_tag_name, test_step)
assert exc_info.value.error_code == '50540002' assert exc_info.value.error_code == '5054500D'
assert "Can not find any data in this train job by given tag." in exc_info.value.message assert "Can not find any data in this train job by given tag." in exc_info.value.message
@pytest.mark.usefixtures('load_image_record') @pytest.mark.usefixtures('load_image_record')
...@@ -172,11 +174,12 @@ class TestImagesProcessor: ...@@ -172,11 +174,12 @@ class TestImagesProcessor:
image_processor = ImageProcessor(self._mock_data_manager) image_processor = ImageProcessor(self._mock_data_manager)
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(ImageNotExistError) as exc_info:
image_processor.get_single_image(self._train_id, test_tag_name, test_step) image_processor.get_single_image(self._train_id, test_tag_name, test_step)
assert exc_info.value.error_code == '50540002' assert exc_info.value.error_code == '5054500D'
assert "Can not find the step with given train job id and tag." in exc_info.value.message assert "Image is not exist. " \
"Detail: Can not find the step with given train job id and tag." == exc_info.value.message
@pytest.mark.usefixtures('load_image_record') @pytest.mark.usefixtures('load_image_record')
def test_get_single_image_success(self): def test_get_single_image_success(self):
...@@ -206,7 +209,7 @@ class TestImagesProcessor: ...@@ -206,7 +209,7 @@ class TestImagesProcessor:
try: try:
image_processor.get_single_image(self._train_id, test_tag_name, test_step) image_processor.get_single_image(self._train_id, test_tag_name, test_step)
except ParamValueError: except ImageNotExistError:
cnt += 1 cnt += 1
assert len(self._more_steps_list) - cnt == 10 assert len(self._more_steps_list) - cnt == 10
...@@ -233,7 +236,7 @@ class TestImagesProcessor: ...@@ -233,7 +236,7 @@ class TestImagesProcessor:
try: try:
image_processor.get_single_image(self._train_id, test_tag_name, test_step) image_processor.get_single_image(self._train_id, test_tag_name, test_step)
current_step_list.append(test_step) current_step_list.append(test_step)
except ParamValueError: except ImageNotExistError:
not_found_step_list.append(test_step) not_found_step_list.append(test_step)
assert current_step_list == [1, 2, 3, 4, 15] assert current_step_list == [1, 2, 3, 4, 15]
......
...@@ -24,11 +24,12 @@ from unittest.mock import Mock ...@@ -24,11 +24,12 @@ from unittest.mock import Mock
import pytest import pytest
from mindinsight.datavisual.common.enums import PluginNameEnum from mindinsight.datavisual.common.enums import PluginNameEnum
from mindinsight.datavisual.common.exceptions import TrainJobNotExistError
from mindinsight.datavisual.common.exceptions import ScalarNotExistError
from mindinsight.datavisual.data_transform import data_manager from mindinsight.datavisual.data_transform import data_manager
from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator
from mindinsight.datavisual.processors.scalars_processor import ScalarsProcessor from mindinsight.datavisual.processors.scalars_processor import ScalarsProcessor
from mindinsight.datavisual.utils import crc32 from mindinsight.datavisual.utils import crc32
from mindinsight.utils.exceptions import ParamValueError
from ....utils.log_operations import LogOperations from ....utils.log_operations import LogOperations
from ....utils.tools import check_loading_done, delete_files_or_dirs from ....utils.tools import check_loading_done, delete_files_or_dirs
...@@ -84,11 +85,11 @@ class TestScalarsProcessor: ...@@ -84,11 +85,11 @@ class TestScalarsProcessor:
"""Get metadata list with not exist id.""" """Get metadata list with not exist id."""
test_train_id = 'not_exist_id' test_train_id = 'not_exist_id'
scalar_processor = ScalarsProcessor(self._mock_data_manager) scalar_processor = ScalarsProcessor(self._mock_data_manager)
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(TrainJobNotExistError) as exc_info:
scalar_processor.get_metadata_list(test_train_id, self._tag_name) scalar_processor.get_metadata_list(test_train_id, self._tag_name)
assert exc_info.value.error_code == '50540002' assert exc_info.value.error_code == '50545005'
assert "Can not find any data in loader pool about the train job." in exc_info.value.message assert "Train job is not exist. Detail: Can not find the given train job in cache." == exc_info.value.message
@pytest.mark.usefixtures('load_scalar_record') @pytest.mark.usefixtures('load_scalar_record')
def test_get_metadata_list_with_not_exist_tag(self): def test_get_metadata_list_with_not_exist_tag(self):
...@@ -97,10 +98,10 @@ class TestScalarsProcessor: ...@@ -97,10 +98,10 @@ class TestScalarsProcessor:
scalar_processor = ScalarsProcessor(self._mock_data_manager) scalar_processor = ScalarsProcessor(self._mock_data_manager)
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(ScalarNotExistError) as exc_info:
scalar_processor.get_metadata_list(self._train_id, test_tag_name) scalar_processor.get_metadata_list(self._train_id, test_tag_name)
assert exc_info.value.error_code == '50540002' assert exc_info.value.error_code == '5054500E'
assert "Can not find any data in this train job by given tag." in exc_info.value.message assert "Can not find any data in this train job by given tag." in exc_info.value.message
@pytest.mark.usefixtures('load_scalar_record') @pytest.mark.usefixtures('load_scalar_record')
......
...@@ -25,11 +25,11 @@ from unittest.mock import Mock ...@@ -25,11 +25,11 @@ from unittest.mock import Mock
import pytest import pytest
from mindinsight.datavisual.common.enums import PluginNameEnum from mindinsight.datavisual.common.enums import PluginNameEnum
from mindinsight.datavisual.common.exceptions import TrainJobNotExistError
from mindinsight.datavisual.data_transform import data_manager from mindinsight.datavisual.data_transform import data_manager
from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator from mindinsight.datavisual.data_transform.loader_generators.data_loader_generator import DataLoaderGenerator
from mindinsight.datavisual.processors.train_task_manager import TrainTaskManager from mindinsight.datavisual.processors.train_task_manager import TrainTaskManager
from mindinsight.datavisual.utils import crc32 from mindinsight.datavisual.utils import crc32
from mindinsight.utils.exceptions import ParamValueError
from ....utils.log_operations import LogOperations from ....utils.log_operations import LogOperations
from ....utils.tools import check_loading_done, delete_files_or_dirs from ....utils.tools import check_loading_done, delete_files_or_dirs
...@@ -109,12 +109,11 @@ class TestTrainTaskManager: ...@@ -109,12 +109,11 @@ class TestTrainTaskManager:
train_task_manager = TrainTaskManager(self._mock_data_manager) train_task_manager = TrainTaskManager(self._mock_data_manager)
for plugin_name in PluginNameEnum.list_members(): for plugin_name in PluginNameEnum.list_members():
test_train_id = "not_exist_id" test_train_id = "not_exist_id"
with pytest.raises(ParamValueError) as exc_info: with pytest.raises(TrainJobNotExistError) as exc_info:
_ = train_task_manager.get_single_train_task(plugin_name, test_train_id) _ = train_task_manager.get_single_train_task(plugin_name, test_train_id)
assert exc_info.type == ParamValueError assert exc_info.value.message == "Train job is not exist. " \
assert exc_info.value.message == "Invalid parameter value. Can not find " \ "Detail: Can not find the train job in data manager."
"the train job in data manager." assert exc_info.value.error_code == '50545005'
assert exc_info.value.error_code == '50540002'
@pytest.mark.usefixtures('load_data') @pytest.mark.usefixtures('load_data')
def test_get_single_train_task_with_params(self): def test_get_single_train_task_with_params(self):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册