Как вернуть переменную для всех тестов, чтобы использовать Unittest - PullRequest
0 голосов
/ 26 мая 2010

У меня есть скрипт на Python, и я пытаюсь установить переменную, чтобы в случае неудачи первого теста оставалась ошибка. Сценарий, который у меня пока есть:

class Tests(unittest.TestCase):

    def result(self):
        ....This function does something[ignore]......
        someArg = 0


    def testPass(self):

        try:
            self.result()
        except suds.WebFault, e:
            assert False
        except Exception, e:
            pass
        finally:
            if someArg == 0:
                assert True
            else:
                global error
                error = False
                assert False  

    def testFail(self):

        try:
            self.result()
        except suds.WebFault, e:
            assert False
        except Exception, e:
            pass
        finally:
            if someArg == 0 or 'error' in globals():
                assert False
            else:
                assert True   


class Get(Tests):

    def runTest(self):

        self.testPass()


class GetFail(Tests):

    def runTest(self):


        self.errorHandle()   
        self.testFail()

if __name__ == '__main__':
    unittest.main()

Я пытаюсь установить для self.error значение False, если первый тест не пройден. Я понимаю, что он устанавливается в другом тесте, но я надеялся, что кто-нибудь может помочь мне найти решение этой проблемы, используя другие средства.

Спасибо

PS. Пожалуйста, игнорируйте странные тесты. В настоящее время существует проблема с обработкой ошибок.

1 Ответ

1 голос
/ 26 мая 2010

Мне трудно понять ваш код, поэтому давайте укажем несколько битов, которые я понимаю (похоже, вы можете верить, что все отличается от того, как они есть).

Звонок

self.errorHandle()  

, который вы выполняете многократно, работает как бездействие: метод errorHandle просто выполняет return, вызывающие стороны игнорируют возвращаемое значение, так что net, "ничего не происходит", и вы также можете избежать вызова метод вообще. Что вы ожидаете, когда вы вызываете метод, который просто возвращает что-то и игнорирует возвращаемое значение?

Не знаю, откуда вы получаете значение someArg - я вижу, что оно проверено двумя способами, но никогда не устанавливается. Может ли это быть псевдокодом на каком-то уровне ...?

Не уверен, что синтаксис этого def function(self) (т.е. result function...) должен передавать - это должен быть какой-то псевдокод, я уверен, но что именно?

Если вы сможете уточнить эти моменты - особенно первый, касающийся методов errorHandle и обращений к нему, - возможно, нам будет проще предложить помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...