16bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti"""Fixer that replaces deprecated unittest method names."""
26bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti
36bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti# Author: Ezio Melotti
46bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti
56bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melottifrom ..fixer_base import BaseFix
66bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melottifrom ..fixer_util import Name
76bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti
86bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio MelottiNAMES = dict(
96bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    assert_="assertTrue",
106bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    assertEquals="assertEqual",
116bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    assertNotEquals="assertNotEqual",
126bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    assertAlmostEquals="assertAlmostEqual",
136bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    assertNotAlmostEquals="assertNotAlmostEqual",
146bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    assertRegexpMatches="assertRegex",
156bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    assertRaisesRegexp="assertRaisesRegex",
166bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    failUnlessEqual="assertEqual",
176bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    failIfEqual="assertNotEqual",
186bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    failUnlessAlmostEqual="assertAlmostEqual",
196bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    failIfAlmostEqual="assertNotAlmostEqual",
206bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    failUnless="assertTrue",
216bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    failUnlessRaises="assertRaises",
226bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    failIf="assertFalse",
236bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti)
246bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti
256bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti
266bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotticlass FixAsserts(BaseFix):
276bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti
286bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    PATTERN = """
296bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti              power< any+ trailer< '.' meth=(%s)> any* >
306bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti              """ % '|'.join(map(repr, NAMES))
316bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti
326bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti    def transform(self, node, results):
336bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti        name = results["meth"][0]
346bdd98622e88bed3ede325b0ffc2bb8d63cde52fEzio Melotti        name.replace(Name(NAMES[str(name)], prefix=name.prefix))
35