Как вызвать функцию и изменить переменную - PullRequest
0 голосов
/ 20 января 2010

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

class AbsoluteMove(unittest.TestCase):

     def Ssh(self):

        p=pexpect.spawn('ssh user@10.10.10.10')
        self.command = './ptzpanposition -c 0 -u degx10' 
        p.sendline("cd /bin")
        i=p.expect('user@user-NA:')
        p.sendline(self.command)
        i=p.expect('user@-userNA:')
        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 () и затем запустить эту функцию. Кто-нибудь знает, как это сделать?

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

Ответы [ 4 ]

1 голос
/ 20 января 2010

Можно ли добавить еще один параметр в Absolute Move?

0 голосов
/ 20 января 2010

Извините за потраченное время,

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

0 голосов
/ 20 января 2010

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

0 голосов
/ 20 января 2010

Вам понадобится оболочка для функции 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...