176e6818aSopenharmony_ci#!/usr/bin/env python3
276e6818aSopenharmony_ci# coding=utf-8
376e6818aSopenharmony_ci
476e6818aSopenharmony_ci#
576e6818aSopenharmony_ci# Copyright (c) 2020-2024 Huawei Device Co., Ltd.
676e6818aSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
776e6818aSopenharmony_ci# you may not use this file except in compliance with the License.
876e6818aSopenharmony_ci# You may obtain a copy of the License at
976e6818aSopenharmony_ci#
1076e6818aSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
1176e6818aSopenharmony_ci#
1276e6818aSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
1376e6818aSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1476e6818aSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1576e6818aSopenharmony_ci# See the License for the specific language governing permissions and
1676e6818aSopenharmony_ci# limitations under the License.
1776e6818aSopenharmony_ci#
1876e6818aSopenharmony_ci
1976e6818aSopenharmony_cifrom xdevice import Error, ErrorCategory
2076e6818aSopenharmony_ci
2176e6818aSopenharmony_ci
2276e6818aSopenharmony_ciclass _CommonErr:
2376e6818aSopenharmony_ci    """Code_0201xxx,汇总常见的、未归类的问题"""
2476e6818aSopenharmony_ci    Code_0201001 = Error(**{"error": "File path does not exist, path: {}",
2576e6818aSopenharmony_ci                            "category": "{}",
2676e6818aSopenharmony_ci                            "code": "0201001"})
2776e6818aSopenharmony_ci    Code_0201002 = Error(**{"error": "Json file does not exist, file: {}",
2876e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
2976e6818aSopenharmony_ci                            "code": "0201002"})
3076e6818aSopenharmony_ci    Code_0201003 = Error(**{"error": "generate test report failed",
3176e6818aSopenharmony_ci                            "code": "0201003"})
3276e6818aSopenharmony_ci    Code_0201004 = Error(**{"error": "The test task is terminated abnormally",
3376e6818aSopenharmony_ci                            "code": "0201004",
3476e6818aSopenharmony_ci                            "suggestions": "测试任务被异常终止"})
3576e6818aSopenharmony_ci    Code_0201005 = Error(**{"error": "Failed to obtain the idle port",
3676e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
3776e6818aSopenharmony_ci                            "code": "0201005"})
3876e6818aSopenharmony_ci    Code_0201006 = Error(**{"error": "The source image for image comparison does not exist, source: {}",
3976e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
4076e6818aSopenharmony_ci                            "code": "0201006"})
4176e6818aSopenharmony_ci    Code_0201007 = Error(**{"error": "The target image for image comparison does not exist, target: {}",
4276e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
4376e6818aSopenharmony_ci                            "code": "0201007"})
4476e6818aSopenharmony_ci    Code_0201008 = Error(**{"error": "Resource file does not exist, file: {}",
4576e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
4676e6818aSopenharmony_ci                            "code": "0201008",
4776e6818aSopenharmony_ci                            "suggestions": "测试资源文件不存在"})
4876e6818aSopenharmony_ci    Code_0201009 = Error(**{"error": "Failed to write content to the file",
4976e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
5076e6818aSopenharmony_ci                            "code": "0201009"})
5176e6818aSopenharmony_ci    Code_0201010 = Error(**{"error": "Failed to read content from the file",
5276e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
5376e6818aSopenharmony_ci                            "code": "0201010"})
5476e6818aSopenharmony_ci    Code_0201011 = Error(**{"error": "Unsupported system environment",
5576e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
5676e6818aSopenharmony_ci                            "code": "0201011"})
5776e6818aSopenharmony_ci    Code_0201012 = Error(**{"error": "Syntax error in test specifier '{}'",
5876e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
5976e6818aSopenharmony_ci                            "code": "0201012"})
6076e6818aSopenharmony_ci    Code_0201013 = Error(**{"error": "Invalid test case name '{}'",
6176e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
6276e6818aSopenharmony_ci                            "code": "0201013"})
6376e6818aSopenharmony_ci    Code_0201014 = Error(**{"error": "Can't find prepare script '{}'",
6476e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
6576e6818aSopenharmony_ci                            "code": "0201014"})
6676e6818aSopenharmony_ci    Code_0201015 = Error(**{"error": "prepare script's setup step execution may be error",
6776e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
6876e6818aSopenharmony_ci                            "code": "0201015"})
6976e6818aSopenharmony_ci    Code_0201016 = Error(**{"error": "prepare script's teardown step execution may be error",
7076e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
7176e6818aSopenharmony_ci                            "code": "0201016"})
7276e6818aSopenharmony_ci    Code_0201017 = Error(**{"error": "Failed to instantiate the test runner",
7376e6818aSopenharmony_ci                            "code": "0201017"})
7476e6818aSopenharmony_ci
7576e6818aSopenharmony_ci
7676e6818aSopenharmony_ciclass _DeviceErr:
7776e6818aSopenharmony_ci    """Code_0202xxx,归类rpc、uitest、测试设备等问题"""
7876e6818aSopenharmony_ci    Code_0202001 = Error(**{"error": "[{}] Reconnect to device rpc service is more than {} times, raise",
7976e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
8076e6818aSopenharmony_ci                            "code": "0202001"})
8176e6818aSopenharmony_ci    Code_0202002 = Error(**{"error": "Receive 0 byte, harmony abc rpc server is disconnected!",
8276e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
8376e6818aSopenharmony_ci                            "code": "0202002"})
8476e6818aSopenharmony_ci    Code_0202003 = Error(**{"error": "Receive 0 byte, harmony rpc server is disconnected!",
8576e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
8676e6818aSopenharmony_ci                            "code": "0202003"})
8776e6818aSopenharmony_ci    Code_0202004 = Error(**{"error": "Receive 0 byte, rpc server is disconnected!",
8876e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
8976e6818aSopenharmony_ci                            "code": "0202004"})
9076e6818aSopenharmony_ci    Code_0202005 = Error(**{"error": "install harmony {} rpc failed, reason: {}",
9176e6818aSopenharmony_ci                            "code": "0202005"})
9276e6818aSopenharmony_ci    Code_0202006 = Error(**{"error": "accessibility pid is not found",
9376e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
9476e6818aSopenharmony_ci                            "code": "0202006"})
9576e6818aSopenharmony_ci    Code_0202007 = Error(**{"error": "Fail to create inner UiDriver",
9676e6818aSopenharmony_ci                            "code": "0202007"})
9776e6818aSopenharmony_ci    Code_0202008 = Error(**{"error": "Fail to create UiDriver",
9876e6818aSopenharmony_ci                            "code": "0202008"})
9976e6818aSopenharmony_ci    Code_0202009 = Error(**{"error": "Fail to connect AAMS",
10076e6818aSopenharmony_ci                            "code": "0202009"})
10176e6818aSopenharmony_ci
10276e6818aSopenharmony_ci    # Code_02023xx,测试设备
10376e6818aSopenharmony_ci    Code_0202301 = Error(**{"error": "webview init failed",
10476e6818aSopenharmony_ci                            "code": "0202301"})
10576e6818aSopenharmony_ci    Code_0202302 = Error(**{"error": "Fail to connect to device, error: {}",
10676e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
10776e6818aSopenharmony_ci                            "code": "0202302",
10876e6818aSopenharmony_ci                            "suggestions": "无法连接设备或向设备发送指令,设备可能已断开连接"})
10976e6818aSopenharmony_ci    Code_0202303 = Error(**{"error": "Connector command execution timeout, error: {}",
11076e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
11176e6818aSopenharmony_ci                            "code": "0202303",
11276e6818aSopenharmony_ci                            "suggestions": "设备调试命令运行超时"})
11376e6818aSopenharmony_ci    Code_0202304 = Error(**{"error": "Connector command execution timeout, error: {}",
11476e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
11576e6818aSopenharmony_ci                            "code": "0202304",
11676e6818aSopenharmony_ci                            "suggestions": "设备调试命令运行超时"})
11776e6818aSopenharmony_ci    Code_0202305 = Error(**{"error": "device rpc process is not found",
11876e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
11976e6818aSopenharmony_ci                            "code": "0202305"})
12076e6818aSopenharmony_ci    Code_0202306 = Error(**{"error": "device cannot be found or is offline",
12176e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
12276e6818aSopenharmony_ci                            "code": "0202306"})
12376e6818aSopenharmony_ci    Code_0202307 = Error(**{"error": "Failed to install test app, error: {}",
12476e6818aSopenharmony_ci                            "category": ErrorCategory.Environment,
12576e6818aSopenharmony_ci                            "code": "0202307"})
12676e6818aSopenharmony_ci
12776e6818aSopenharmony_ci
12876e6818aSopenharmony_ciclass _TestCaseErr:
12976e6818aSopenharmony_ci    """Code_0203xxx,归类用例、用例执行等问题"""
13076e6818aSopenharmony_ci    Code_0203001 = Error(**{"error": "Can't load file {}, error: {}",
13176e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
13276e6818aSopenharmony_ci                            "code": "0203001",
13376e6818aSopenharmony_ci                            "suggestions": "1、测试用例导入模块失败;2、若导入的模块没有被使用,则删除对应的代码行"})
13476e6818aSopenharmony_ci    Code_0203002 = Error(**{"error": "{}",
13576e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
13676e6818aSopenharmony_ci                            "code": "0203002"})
13776e6818aSopenharmony_ci    Code_0203003 = Error(**{"error": "Step {} result TestError!",
13876e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
13976e6818aSopenharmony_ci                            "code": "0203003"})
14076e6818aSopenharmony_ci    Code_0203004 = Error(**{"error": "The self.tests variable of the test case is incorrectly assigned, "
14176e6818aSopenharmony_ci                                     "current assigned: {}",
14276e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
14376e6818aSopenharmony_ci                            "code": "0203004",
14476e6818aSopenharmony_ci                            "suggestions": "测试用例的self.tests变量赋值异常,需将它赋值为用例文件里定义的测试方法"})
14576e6818aSopenharmony_ci    Code_0203005 = Error(**{"error": "传参错误!请用list列表传递待重试运行的用例信息",
14676e6818aSopenharmony_ci                            "code": "0203005"})
14776e6818aSopenharmony_ci    Code_0203006 = Error(**{"error": "ImportError occurred, error: {}",
14876e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
14976e6818aSopenharmony_ci                            "code": "0203006",
15076e6818aSopenharmony_ci                            "suggestions": "Python三方库、AW接口等载入异常,导致用例执行失败"})
15176e6818aSopenharmony_ci    Code_0203007 = Error(**{"error": "Failed to initialize the device object in the TestCase",
15276e6818aSopenharmony_ci                            "code": "0203007"})
15376e6818aSopenharmony_ci    Code_0203008 = Error(**{"error": "The parameter type is incorrect, error: {}",
15476e6818aSopenharmony_ci                            "code": "0203008",
15576e6818aSopenharmony_ci                            "suggestions": "参数类型错误"})
15676e6818aSopenharmony_ci    Code_0203009 = Error(**{"error": "No device has assigned for test source",
15776e6818aSopenharmony_ci                            "code": "0203009",
15876e6818aSopenharmony_ci                            "suggestions": "测试用例未分配到设备资源"})
15976e6818aSopenharmony_ci    Code_0203010 = Error(**{"error": "No config file for test source '{}'",
16076e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
16176e6818aSopenharmony_ci                            "code": "0203010"})
16276e6818aSopenharmony_ci    Code_0203011 = Error(**{"error": "No test list to run",
16376e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
16476e6818aSopenharmony_ci                            "code": "0203011"})
16576e6818aSopenharmony_ci    Code_0203012 = Error(**{"error": "No test list found",
16676e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
16776e6818aSopenharmony_ci                            "code": "0203012"})
16876e6818aSopenharmony_ci    Code_0203013 = Error(**{"error": "The field of [py_file] in file {}.json only support one item, now is {}",
16976e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
17076e6818aSopenharmony_ci                            "code": "0203013",
17176e6818aSopenharmony_ci                            "suggestions": "测试用例json的py_file字段只能配置一个用例py"})
17276e6818aSopenharmony_ci    Code_0203014 = Error(**{"error": "The field of [testsuite] in file testsuite json is not set",
17376e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
17476e6818aSopenharmony_ci                            "code": "0203014",
17576e6818aSopenharmony_ci                            "suggestions": "测试套json的testsuite字段未配置测试套py"})
17676e6818aSopenharmony_ci    Code_0203015 = Error(**{"error": "You can only use the loop decorator in a test case",
17776e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
17876e6818aSopenharmony_ci                            "code": "0203015",
17976e6818aSopenharmony_ci                            "suggestions": "只能在测试用例里使用loop装饰器"})
18076e6818aSopenharmony_ci    Code_0203016 = Error(**{"error": "The file name of the test case must be the same as the class name",
18176e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
18276e6818aSopenharmony_ci                            "code": "0203016",
18376e6818aSopenharmony_ci                            "suggestions": "测试用例的文件名与类名必须保持一致"})
18476e6818aSopenharmony_ci    Code_0203017 = Error(**{"error": "Failed to run the test suite, error: {}",
18576e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
18676e6818aSopenharmony_ci                            "code": "0203017",
18776e6818aSopenharmony_ci                            "suggestions": "测试套运行失败"})
18876e6818aSopenharmony_ci
18976e6818aSopenharmony_ci
19076e6818aSopenharmony_ciclass _AssertionErr:
19176e6818aSopenharmony_ci    """Code_0204xxx,断言错误提示"""
19276e6818aSopenharmony_ci    Code_0204001 = Error(**{"error": "{}",
19376e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
19476e6818aSopenharmony_ci                            "code": "0204001",
19576e6818aSopenharmony_ci                            "suggestions": "自定义断言错误提示语"})
19676e6818aSopenharmony_ci    Code_0204002 = Error(**{"error": "断言错误:由'=='条件确定的两个对象的值不相等",
19776e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
19876e6818aSopenharmony_ci                            "code": "0204002"})
19976e6818aSopenharmony_ci    Code_0204003 = Error(**{"error": "断言错误:由'!='条件确定的两个对象的值相等",
20076e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
20176e6818aSopenharmony_ci                            "code": "0204003"})
20276e6818aSopenharmony_ci    Code_0204004 = Error(**{"error": "断言错误:检查对象不为false",
20376e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
20476e6818aSopenharmony_ci                            "code": "0204004"})
20576e6818aSopenharmony_ci    Code_0204005 = Error(**{"error": "断言错误:检查对象不为true",
20676e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
20776e6818aSopenharmony_ci                            "code": "0204005"})
20876e6818aSopenharmony_ci    Code_0204006 = Error(**{"error": "断言错误:两个对象的id不相同",
20976e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
21076e6818aSopenharmony_ci                            "code": "0204006"})
21176e6818aSopenharmony_ci    Code_0204007 = Error(**{"error": "断言错误:两个对象的id相同",
21276e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
21376e6818aSopenharmony_ci                            "code": "0204007"})
21476e6818aSopenharmony_ci    Code_0204008 = Error(**{"error": "断言错误:检查对象不为None",
21576e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
21676e6818aSopenharmony_ci                            "code": "0204008"})
21776e6818aSopenharmony_ci    Code_0204009 = Error(**{"error": "断言错误:检查对象为None",
21876e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
21976e6818aSopenharmony_ci                            "code": "0204009"})
22076e6818aSopenharmony_ci    Code_0204010 = Error(**{"error": "断言错误:检查对象不在对象容器中",
22176e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
22276e6818aSopenharmony_ci                            "code": "0204010"})
22376e6818aSopenharmony_ci    Code_0204011 = Error(**{"error": "断言错误:检查对象在对象容器中",
22476e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
22576e6818aSopenharmony_ci                            "code": "0204011"})
22676e6818aSopenharmony_ci    Code_0204012 = Error(**{"error": "断言错误:检查对象不是另一对象的实例",
22776e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
22876e6818aSopenharmony_ci                            "code": "0204012"})
22976e6818aSopenharmony_ci    Code_0204013 = Error(**{"error": "断言错误:检查对象是另一对象的实例",
23076e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
23176e6818aSopenharmony_ci                            "code": "0204013"})
23276e6818aSopenharmony_ci    Code_0204014 = Error(**{"error": "断言错误:",
23376e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
23476e6818aSopenharmony_ci                            "code": "0204014"})
23576e6818aSopenharmony_ci    Code_0204015 = Error(**{"error": "断言错误:检查对象的值(四舍五入比较)几乎不等于另一对象的值",
23676e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
23776e6818aSopenharmony_ci                            "code": "0204015"})
23876e6818aSopenharmony_ci    Code_0204016 = Error(**{"error": "断言错误:检查对象的值(四舍五入比较)几乎等于另一对象的值",
23976e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
24076e6818aSopenharmony_ci                            "code": "0204016"})
24176e6818aSopenharmony_ci    Code_0204017 = Error(**{"error": "断言错误:检查对象的值小于另一对象的值",
24276e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
24376e6818aSopenharmony_ci                            "code": "0204017"})
24476e6818aSopenharmony_ci    Code_0204018 = Error(**{"error": "断言错误:检查对象的值大于等于另一对象的值",
24576e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
24676e6818aSopenharmony_ci                            "code": "0204018"})
24776e6818aSopenharmony_ci    Code_0204019 = Error(**{"error": "断言错误:检查对象的值大于另一对象的值",
24876e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
24976e6818aSopenharmony_ci                            "code": "0204019"})
25076e6818aSopenharmony_ci    Code_0204020 = Error(**{"error": "断言错误:两个字典对象不相等",
25176e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
25276e6818aSopenharmony_ci                            "code": "0204020"})
25376e6818aSopenharmony_ci    Code_0204021 = Error(**{"error": "断言错误:两个集合对象不相等",
25476e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
25576e6818aSopenharmony_ci                            "code": "0204021"})
25676e6818aSopenharmony_ci    Code_0204022 = Error(**{"error": "断言错误:两个元组对象不相等",
25776e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
25876e6818aSopenharmony_ci                            "code": "0204022"})
25976e6818aSopenharmony_ci    Code_0204023 = Error(**{"error": "断言错误:两个列表对象不相等",
26076e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
26176e6818aSopenharmony_ci                            "code": "0204023"})
26276e6818aSopenharmony_ci    Code_0204024 = Error(**{"error": "断言错误:两个序列对象不相等",
26376e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
26476e6818aSopenharmony_ci                            "code": "0204024"})
26576e6818aSopenharmony_ci    Code_0204025 = Error(**{"error": "断言错误:两个多行字符串不相等",
26676e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
26776e6818aSopenharmony_ci                            "code": "0204025"})
26876e6818aSopenharmony_ci    Code_0204026 = Error(**{"error": "断言错误:Expect: {}, Actual: {}",
26976e6818aSopenharmony_ci                            "category": ErrorCategory.Script,
27076e6818aSopenharmony_ci                            "code": "0204026"})
27176e6818aSopenharmony_ci
27276e6818aSopenharmony_ci
27376e6818aSopenharmony_ciclass ErrorMessage:
27476e6818aSopenharmony_ci    Common: _CommonErr = _CommonErr()
27576e6818aSopenharmony_ci    Device: _DeviceErr = _DeviceErr()
27676e6818aSopenharmony_ci    TestCase: _TestCaseErr = _TestCaseErr()
27776e6818aSopenharmony_ci    Assertion: _AssertionErr = _AssertionErr()
278