相当于python 2.4中的assertRegexMatches

时间:2010-08-20 18:38:18

标签: python unit-testing

说我有正则表达式

REGEX = re.compile('.*foo{')

你如何编写一个与python 2.4匹配的字符串集的单元测试?

我知道在python 2.7中我可以使用assertRegexMatches,遗憾的是这在2.4中不起作用:/

我在其余测试中使用self.assertEqual。

干杯, 中号

4 个答案:

答案 0 :(得分:5)

self.assertTrue(REGEX.match(text))

答案 1 :(得分:2)

如果您想要完全匹配,可以执行以下操作:

assertTrue(REGEX.match(data))

如果你不在乎它匹配的地方那么:

assertTrue(REGEX.search(data))

请记住匹配和搜索之间的difference。此外,如果您如此倾向,您可以继承TestCase并添加您自己的断言来执行上述操作。

答案 2 :(得分:2)

因为你询问了一组字符串而不是单个字符串

def createMatcher( self, regex ):
    def matchCheck( argument ):
        self.assertTrue( regex.match( argument ) )
    return matchCheck

然后在你的函数中:

map( self.createMatcher( REGEX ), mySetOfStrings )

答案 3 :(得分:1)

为了测试早期的Python版本,我更喜欢使用unittest2http://pypi.python.org/pypi/unittest2/

这是由Michael Foord维护的unittest的后端,Michael Foord是维护stdlib版本的开发人员。