2010-01-20 2 views
0

Я вызываю функцию несколько раз, когда я тестирую несколько ответов. Я спрашиваю, как я вызываю функцию раньше в программе, изменяя переменную в этой функции, а затем вызываю ее. Ниже приведен фрагмент кода.Как вызвать функцию и изменить переменную

class AbsoluteMove(unittest.TestCase): 

    def Ssh(self): 

     p=pexpect.spawn('ssh [email protected]') 
     self.command = './ptzpanposition -c 0 -u degx10' 
     p.sendline("cd /bin") 
     i=p.expect('[email protected]:') 
     p.sendline(self.command) 
     i=p.expect('[email protected]:') 
     self.Value = p.before 

class VerifyTilt(AbsoluteMove): 

    def runTest(self): 

     self.dest.PanTilt._y=2.0 

     try: 
      result = self.client.service.AbsoluteMove(self.token, self.dest, self.speed) 
     except suds.WebFault as detail: 
      print detail 

     self.command = './ptzpanposition -c 0 -u degx10' 
     AbsoluteMove.Ssh(self) 

     # Position of the camera verified through Ssh (No decimal point added to the Ssh value) 
     self.assertEqual(self.Value, '20') 

Я хочу изменить «self.command» переменную в AbsoluteMove.Ssh(), а затем запустить эту функцию. Кто-нибудь знает как это сделать?

Спасибо за любую помощь

ответ

0

Извините за время изнурительной,

я объявил переменную в функции Ssh(). Я удалил это, и переменные были изменены позже кода. Код будет работать так, спасибо.

+0

Пожалуйста, прочитайте «Как мне задавать вопросы здесь?» на этой странице: http://stackoverflow.com/faq – Jorenko

0

Вы должны иметь оболочку для RunTest функции. Обратите внимание на то, что я прокомментировал self.command='./ptzpanposition -c 0 -u degx10' в runTest

class VerifyTilt(AbsoluteMove): 
def testWrapper(self): 
    self.command = './ptzpanposition -c 0 -u degx10' 
    runTest() 
    self.command = 'some other command' 
    runTest() 

def runTest(self): 

    self.dest.PanTilt._y=2 

    try: 
     result = self.client.service.AbsoluteMove(self.token, self.dest, self.speed) 
    except suds.WebFault as detail: 
     print detail 

    # self.command = './ptzpanposition -c 0 -u degx10' 
    AbsoluteMove.Ssh(self) 

    # Position of the camera verified through Ssh (No decimal point added to the Ssh value) 
    self.assertEqual(self.Value, '200') 
1

это выполнимо, чтобы добавить еще один параметр Абсолюта Move?

0

Похоже, что self.command - это просто строка, и поскольку AbsoluteMove.Ssh() не принимает никаких аргументов, она должна каким-то образом использовать эту строку ..., поэтому вы можете просто изменить значение self.command. Лучший дизайн будет иметь две команды и аргумент AbsoluteMove.Ssh(), чтобы выбрать между ними.

Смежные вопросы