[Python-bugs-list] [ python-Bugs-588825 ] unittest.py, better error message

noreply@sourceforge.net noreply@sourceforge.net
Tue, 30 Jul 2002 15:29:37 -0700


Bugs item #588825, was opened at 2002-07-31 00:29
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=588825&group_id=5470

Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Stefan Heimann (stefanheimann)
Assigned to: Nobody/Anonymous (nobody)
Summary: unittest.py, better error message

Initial Comment:
These two methods of the class TestCase are not very good:

    def failUnlessEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as
determined by the '!='
           operator.
        """
        if first != second:
            raise self.failureException, \
                  (msg or '%s != %s' % (`first`, `second`))

    def failIfEqual(self, first, second, msg=None):
        """Fail if the two objects are equal as
determined by the '=='
           operator.
        """
        if first == second:
            raise self.failureException, \
                  (msg or '%s == %s' % (`first`, `second`))

The first thing is that you should print the difference
of the given values like that:

'<%s> == <%s>' % (`first`, `second`)

The < and > delimits the string and so is is easier to
detect where the string starts and where it ends.

The second thing is that I would really like to see the
two values that are (not) equal even if I provide a
message. Maybe its better to raise the exception like that:

        if msg is not None:
            msg += ' Expected: <%s>, is: <%s>' %
(first, second)
        raise self.failureException, \
                  (msg or '%s != %s' % (`first`, `second`))

bye Stefan

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=588825&group_id=5470