Unit testing errors (testing the platform module)

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Wed Apr 14 04:09:54 EDT 2010


En Tue, 13 Apr 2010 11:01:19 -0300, John Maclean <jayeola at gmail.com>  
escribió:

> Is there an error in my syntax? Why is my test failing? Line 16.
>
> ======================================================================
> FAIL: platform.__builtins__.blah
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "stfu/testing/test_pyfactor.py", line 16, in testplatformbuiltins
>     self.assertEquals(platform.__builtins__.__class__, "<type 'dict'>")
> AssertionError: <type 'dict'> != "<type 'dict'>"
>
> ----------------------------------------------------------------------

To express the condition "SOMEOBJECT must be a dictionary", use:

     isinstance(SOMEOBJECT, dict)

SOMEOBJECT might actually be an instance of any derived class and still  
pass the test; that's usually the desired behavior.

In the rare cases where only a very specific type is allowed, use this  
form instead:

     type(SOMEOBJECT) is dict


The test case above should read then:

     self.assert_(isinstance(platform.__builtins__, dict),
                  type(platform.__builtins__))

-- 
Gabriel Genellina




More information about the Python-list mailing list