python unittest assertRaises löst eine Ausnahme aus, wenn assertRaises fehlschlägt

Ich habe Code, in dem assertRaises eine Ausnahme auslöst, wenn assertRaises fehlschlägt. Ich dachte, wenn assertRaises fehlschlägt, würde der Test fehlschlagen und ich würde am Ende einen Bericht erhalten, der besagt, dass der Test fehlgeschlagen ist. Ich hatte nicht damit gerechnet, dass die Ausnahme geworfen wird. Unten ist mein Code. Ich mache etwas falsch? Ich benutze Python 2.6.2.

import unittest

class myClass:

    def getName(self):

        raise myExcOne, "my exception one"
        #raise myExcTwo, "my exception two"
        #return "a"

class myExcOne(Exception):
    "exception one"

class myExcTwo(Exception):
    "exception two"


class test_myClass(unittest.TestCase):

    def setUp(self):

        self.myClass = myClass()

    def testgetNameEmpty(self):
        #self.assertRaises(myExcOne,self.myClass.getName)
        #self.assertRaises(myExcTwo,self.myClass.getName)

        try:
            self.assertRaises(myExcTwo,self.myClass.getName)
        except Exception as e:
            pass

if __name__ == "__main__":

    #unittest.main()

    suite = unittest.TestLoader().loadTestsFromTestCase(test_myClass)
    unittest.TextTestRunner(verbosity=2).run(suite)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage