@classmethod
def assertEqual(cls, first, second, msg=None):
    """
        Classmethod equivalent to unittest.TestCase method
        """
    asserter = None
    if type(first) is type(second):
        asserter = cls.equality_type_funcs.get(type(first))
        try:
            basestring = basestring
        except NameError:
            basestring = str
        if asserter is not None:
            if isinstance(asserter, basestring):
                asserter = getattr(cls, asserter)
    if asserter is None:
        asserter = cls.simple_equality
    if msg is None:
        asserter(first, second)
    else:
        asserter(first, second, msg=msg)
