gpt4 book ai didi

python - 如何使用python在机器人框架中导入和使用用户定义的枚举类

转载 作者:行者123 更新时间:2023-12-03 23:05:57 25 4
gpt4 key购买 nike

我目前正在机器人框架中实现一些测试用例。断言检查整数是否有效。我想将其更改为枚举值。这是我的基本要求。
这是我正在使用的机器人文件 (TestCase.robot)

*** Settings ***
Library Wrapper.py

*** Test Cases ***
TC_01
${rv} Set Variable ${0} #${}
Should Be Equal As Integers ${rv} 0
在行 Should Be Equal As Integers ${rv} 0 , 而不是这个整数值 0 assertion ,我想将该整数转换为某个枚举值。
像这样的东西。
Should Be Equal As Integers    ${rv}    Status.OK
在哪里 Status是在 Wrapper.py 中定义的枚举类.这个 Wrapper.py包含在 TestCase.robot 中作为 Library在这个机器人文件中。我可以在此处粘贴该枚举的内容
class Status(Enum):
OK = 0
NOT_OK = 1
这样我们就可以使它更具可读性,而不是整数。当我这样给予时,我收到错误
'(Status.OK)' cannot be converted to an integer: ValueError: invalid literal for int() with base 10: '(status.ok)'
各位大神能帮忙解决一下这个问题吗?

最佳答案

有几件事 - 首先,您要比较值,即 Enum.member_name.value属性(property),正如已经指出的那样。
其他的东西——python Enum 有点特殊,它没有被实例化——这会阻止你导入一个具有相同名称的模块(直接引用它)——Robot Framework 在这些导入中创建一个类的实例。因此无法直接访问该值。
不过,有一个解决方案 - 制作一个包装器(函数,在我的示例中,但可以是同级类的方法),它将返回目标值。示例 python :

def return_enum_value(member):
return Status[member].value


class Status(Enum):
OK = 0
NOT_OK = 1
和射频用法:
${the value}=    Return Enum Value  OK
Should Be Equal As Integers 0 ${the value}

关于python - 如何使用python在机器人框架中导入和使用用户定义的枚举类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62695871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com