2014-02-10 5 views
0

Я построил гибридную библиотеку в python для robotframework. Один из методов этого API возвращает строку, которую я хочу присвоить переменной robotframework в тесте.robotframework гибридная библиотека ключевое слово не вернет значение

${sms_1_2}= encrypt_sms_return_ciphered  [email protected]  [email protected]  sms1to2 

Я проверил, что питон код encrypt_sms_return_ciphered сделал возвращать строку. Но проблема в том, что переменной robotframework присваивается None.

Вот код метода:

@InstanceIndex.check_short_name 
def encrypt_sms__return_ciphered(self, sender, receiver, clearsms): 
    self.encrypt_sms(sender, receiver, clearsms) 
    ClientIndex.success_if(sender, "isSmsSent", receiver, clearsms) 
    cipheredsms = self.smsSent[receiver, clearsms] 
    del self.smsSent[receiver, clearsms] 
    return cipheredsms 

Вот код check_short_name декоратора:

@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 

ответ

0

я узнал, что проблема была: цепочка возвращаемого значения была нарушена с самого начала. Не было возврата до получения:

@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 
Смежные вопросы