robotframework混合库关键字不会返回valu

2024-07-05 09:15:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python为robotframework构建了一个混合库。这个API的一个方法返回一个字符串,我想把它分配给测试中的robotframework变量。在

${sms_1_2}=   encrypt_sms_return_ciphered     1@ercom.fr      2@ercom.fr      sms1to2

我已经验证了encrypt_sms_return_ciphered的python代码确实返回了一个字符串。但问题是robotframework变量没有赋值给None。在

方法代码如下:

^{pr2}$

以下是check_short_name decorator的代码:

@staticmethod
def check_short_name(method):
    def wrapper(self, short_name, *args, **kwargs):
        if short_name != self.short_name:
            try:
                getattr(self.collection.iterate(), method.__name__)(short_name, *args, **kwargs)
            except StopIteration:
                raise Exception("item \"%s\" is not a member of %s, or method \"%s\" is not defined for any member of %s" % (short_name, self.collection.name, method.__name__, self.collection.name))
        else:
            self.collection.rewind()
            return method(self, short_name, *args, **kwargs)
    return wrapper

Tags: 方法字符串代码nameselfreturnargssms
1条回答
网友
1楼 · 发布于 2024-07-05 09:15:22

我发现了问题所在:回报价值链从一开始就被打破了。在getattr之前没有返回:

@staticmethod
def check_short_name(method):
    def wrapper(self, short_name, *args, **kwargs):
        if short_name != self.short_name:
            try:
                **return** getattr(self.collection.iterate(), method.__name__)(short_name, *args, **kwargs)
            except StopIteration:
                raise Exception("item \"%s\" is not a member of %s, or method \"%s\" is not defined for any member of %s" % (short_name, self.collection.name, method.__name__, self.collection.name))
        else:
            self.collection.rewind()
            return method(self, short_name, *args, **kwargs)
    return wrapper

相关问题 更多 >