single-quoted string conversion to triple-quoted string

Emile van Sebille emile at fenx.com
Sat Apr 6 08:32:14 EST 2002


"robin and jim" <robinjim at earthlink.net> wrote in message
news:%_Br8.20276$nt1.1661286 at newsread2.prod.itd.earthlink.net...
>
> Gee, I thought it would be obvious why I was asking such a question
<wink>!
>
> As unit tests run, using the unittest module shipped with Python 2.2,
the
> default behavior is to display a one-line description of each test.
The
> default implementation displays the first line of the test method's
> **docstring**, if available; otherwise the name of the test method
(e.g.,
> "test_my_regular_expression") is displayed.

Yes.  This comes from the __doc__ attribute of the method.

>
> Well, yours truly thought he would be clever and add some additional
> information to this docstring as it became available at run time via
the %
> placeholder mechanism.  Alas, the result is a single-quoted string
that
> unittest does not recognize as a docstring so it displays the test
method's
> name (e.g., "test_my_regular_expression") instead. I, naively, think
that if
> the single quoted result can be re-converted to a triple-quoted
string, it
> will be recognized by unittest.
>

You could change the __doc__ attribute of the method before testing:

import unittest

class IntegerArithmenticTestCase(unittest.TestCase):
    def testAdd(self):  ## test method names begin 'test*'
        self.assertEquals((1 + 2), 3)
        self.assertEquals(0 + 1, 1)
    def testMultiply(self):
        self.assertEquals((0 * 10), 0)
        self.assertEquals((5 * 8), 40)

if __name__ == '__main__':
    testvals = [3,7,4,5]
    IntegerArithmenticTestCase.__dict__['testAdd'].__doc__ = 'testing
with %s' % testvals
    unittest.main()

HTH,

--

Emile van Sebille
emile at fenx.com

---------




More information about the Python-list mailing list