|
@@ -464,27 +464,31 @@ class COptionExcel(CBaseLog):
|
|
|
def getOptionValueInfo(self, optionName, value=""):
|
|
|
# 编码转换;
|
|
|
if type(optionName) == str:
|
|
|
- option = unicode(optionName)
|
|
|
+ optionName = unicode(optionName)
|
|
|
|
|
|
# option/value name是否在value表中的;
|
|
|
if optionName not in self.__valueParams.values:
|
|
|
return []
|
|
|
|
|
|
- optValues = self.__valueParams.values[option]["value"]
|
|
|
+ optValues = self.__valueParams.values[optionName]["value"]
|
|
|
valueList = []
|
|
|
valueOcrList = []
|
|
|
for item in optValues:
|
|
|
valueList.append(item["value"])
|
|
|
valueOcrList.append(item["value_for_ocr"])
|
|
|
|
|
|
- vp = {"option": option, "value": valueList, "value_for_ocr": valueOcrList,
|
|
|
- "enter_key": self.valueParams.values[option]["enter_key"],
|
|
|
- "move_key": self.valueParams.values[option]["move_key"],
|
|
|
- "others": self.valueParams.values[option]['others']}
|
|
|
+ vp = {
|
|
|
+ "option": optionName,
|
|
|
+ "value": valueList,
|
|
|
+ "value_for_ocr": valueOcrList,
|
|
|
+ "enter_key": self.__valueParams.values[optionName]["enter_key"],
|
|
|
+ "move_key": self.__valueParams.values[optionName]["move_key"],
|
|
|
+ "others": self.__valueParams.values[optionName]['others']
|
|
|
+ }
|
|
|
# 找到value对应的ocr;
|
|
|
if value != "":
|
|
|
vp["value"] = value
|
|
|
- for item in self.valueParams.values[option]["value"]:
|
|
|
+ for item in self.__valueParams.values[optionName]["value"]:
|
|
|
if "range(" in item["value"]:
|
|
|
vp["value_for_ocr"] = item["value_for_ocr"].split(';')
|
|
|
break
|
|
@@ -604,6 +608,110 @@ class COptionExcel(CBaseLog):
|
|
|
|
|
|
return valueList
|
|
|
|
|
|
+ '''
|
|
|
+ 函数:获取指定option的路径。
|
|
|
+ 参数:
|
|
|
+ 返回:
|
|
|
+ 示例:
|
|
|
+
|
|
|
+ 测试:。
|
|
|
+ '''
|
|
|
+ def getOptionPaths(self, optionName):
|
|
|
+ # pp必须不排序;
|
|
|
+ pp = OrderedDict()
|
|
|
+ # 首先,字典不排序,需要倒序;
|
|
|
+ paths = reversed(self.__pathParams.paths)
|
|
|
+ for level in paths:
|
|
|
+ found = False
|
|
|
+ for parent in self.__pathParams.paths[level]:
|
|
|
+ # print parent,self.pathParams.paths[level][parent],'\r\n'
|
|
|
+ for item in self.__pathParams.paths[level][parent]["value"]:
|
|
|
+ # print item
|
|
|
+ if item["option"].lower() == optionName.lower():
|
|
|
+ pp[level] = {
|
|
|
+ "parent": parent,
|
|
|
+ "move_key": self.__pathParams.paths[level][parent][xlsc.move_key],
|
|
|
+ "enter_key": self.__pathParams.paths[level][parent][xlsc.enter_key],
|
|
|
+ "others": self.__pathParams.paths[level][parent][xlsc.others],
|
|
|
+ "option": item[xlsc.option],
|
|
|
+ "option_for_ocr": item[xlsc.option_for_ocr].split(';'),
|
|
|
+ "option_move_key": item[xlsc.move_key],
|
|
|
+ "option_enter_key": item[xlsc.enter_key],
|
|
|
+ "option_others": item[xlsc.others]
|
|
|
+ }
|
|
|
+ optionName = parent
|
|
|
+ found = True
|
|
|
+ break
|
|
|
+ if found:
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ if parent == optionName:
|
|
|
+ for item in self.__pathParams.paths[level][parent]["value"]:
|
|
|
+ # print item
|
|
|
+ if item["option"].lower() == optionName.lower():
|
|
|
+ pp[level] = {
|
|
|
+ "parent": parent,
|
|
|
+ "move_key": self.__pathParams.paths[level][parent][xlsc.move_key],
|
|
|
+ "enter_key": self.__pathParams.paths[level][parent][xlsc.enter_key],
|
|
|
+ "others": self.__pathParams.paths[level][parent][xlsc.others],
|
|
|
+ "option": item[xlsc.option],
|
|
|
+ "option_for_ocr": item[xlsc.option_for_ocr].split(';'),
|
|
|
+ "option_move_key": item[xlsc.move_key],
|
|
|
+ "option_enter_key": item[xlsc.enter_key],
|
|
|
+ "option_others": item[xlsc.others]
|
|
|
+ }
|
|
|
+ optionName = parent
|
|
|
+ found = True
|
|
|
+ break
|
|
|
+ # endif
|
|
|
+ # endfor
|
|
|
+ break
|
|
|
+ # endif
|
|
|
+ # endfor
|
|
|
+ # endfor
|
|
|
+ # 需要对path倒序使用;
|
|
|
+ # dict_pp = OrderedDict()
|
|
|
+ # # 逆序路径key;
|
|
|
+ # revpp = reversed(pp)
|
|
|
+ # for path in revpp:
|
|
|
+ # dict_pp[path] = {"parent": pp[path]['parent'],"move_key": pp[path]['move_key'],"enter_key": pp[path]['enter_key'],"others":pp[path]['others'],"option": pp[path]['option'],"option_for_ocr": pp[path]['option_for_ocr']}
|
|
|
+ # # 返回逆序后的结果;
|
|
|
+ # return dict_pp
|
|
|
+ return pp
|
|
|
+
|
|
|
+ def getOptionPathsAndValue(self, optionName, value):
|
|
|
+ if value.__len__() == 0:
|
|
|
+ self.error('value空,执行退出')
|
|
|
+ return {}, OrderedDict()
|
|
|
+
|
|
|
+ vp = self.getOptionValueInfo(optionName, value)
|
|
|
+ pp = self.getOptionPaths(optionName)
|
|
|
+
|
|
|
+ return vp, pp
|
|
|
+
|
|
|
+ def checkOptionPaths(self, optionNameOrPaths):
|
|
|
+ optionPathResult = "Fail"
|
|
|
+ path_params = optionNameOrPaths
|
|
|
+ if type(optionNameOrPaths) == str:
|
|
|
+ path_params = self.getOptionPaths(optionNameOrPaths)
|
|
|
+ # 如果传入的option不存在则直接返回
|
|
|
+ if path_params.__len__() <= 0:
|
|
|
+ optionPathResult = "NoExit"
|
|
|
+ optionPath = u"表格中不存在到达Option: %s 的路径" % str(optionNameOrPaths)
|
|
|
+ return optionPath, optionPathResult
|
|
|
+ else:
|
|
|
+ optionPath = str(path_params)
|
|
|
+ # 逆序路径key;
|
|
|
+ revpp = reversed(path_params)
|
|
|
+ level_count = 0
|
|
|
+ for level in revpp:
|
|
|
+ if str(level) == str(g_level[level_count]):
|
|
|
+ level_count = level_count + 1
|
|
|
+ else:
|
|
|
+ # 如果执行路径不是按照First、Second......执行则返回执行出错
|
|
|
+ return optionPath, optionPathResult
|
|
|
+ optionPathResult = "Pass"
|
|
|
+ return optionPath, optionPathResult
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
exData = CExtraData()
|
|
@@ -620,4 +728,7 @@ if __name__ == "__main__":
|
|
|
# print "getOptionValueInfo", opxls.getOptionValueInfo('picture')
|
|
|
# print "getOptionValueText", opxls.getOptionValueText('picture', 'sharpness')
|
|
|
# print "getOptionInfo", opxls.getOptionInfo('picture_reset')
|
|
|
- print "getOptionAllValueName", opxls.getOptionAllValueName('r_gain')
|
|
|
+ # print "getOptionAllValueName", opxls.getOptionAllValueName('r_gain')
|
|
|
+ ##########################################
|
|
|
+ # print "getOptionPaths", opxls.getOptionPaths('sharpness')
|
|
|
+ print "checkOptionPaths", opxls.checkOptionPaths('sharpness')
|