Home | History | Annotate | Download | only in fixes
      1 """Fixer that replaces deprecated unittest method names."""
      2 
      3 # Author: Ezio Melotti
      4 
      5 from ..fixer_base import BaseFix
      6 from ..fixer_util import Name
      7 
      8 NAMES = dict(
      9     assert_="assertTrue",
     10     assertEquals="assertEqual",
     11     assertNotEquals="assertNotEqual",
     12     assertAlmostEquals="assertAlmostEqual",
     13     assertNotAlmostEquals="assertNotAlmostEqual",
     14     assertRegexpMatches="assertRegex",
     15     assertRaisesRegexp="assertRaisesRegex",
     16     failUnlessEqual="assertEqual",
     17     failIfEqual="assertNotEqual",
     18     failUnlessAlmostEqual="assertAlmostEqual",
     19     failIfAlmostEqual="assertNotAlmostEqual",
     20     failUnless="assertTrue",
     21     failUnlessRaises="assertRaises",
     22     failIf="assertFalse",
     23 )
     24 
     25 
     26 class FixAsserts(BaseFix):
     27 
     28     PATTERN = """
     29               power< any+ trailer< '.' meth=(%s)> any* >
     30               """ % '|'.join(map(repr, NAMES))
     31 
     32     def transform(self, node, results):
     33         name = results["meth"][0]
     34         name.replace(Name(NAMES[str(name)], prefix=name.prefix))
     35