ten small Python programs
Steven Bethard
steven.bethard at gmail.com
Sun May 27 15:01:54 EDT 2007
Steve Howell wrote:
> --- Steven Bethard <steven.bethard at gmail.com> wrote:
>
>> Steve Howell wrote:
>>> --- Steven Bethard <steven.bethard at gmail.com>
>> wrote:
>>>> I think I would rewrite the current unit-testing
>>>> example to use the
>>>> standard library unittest module::
>>>>
>>>> # Let's write reusable code, and unit test
>> it.
>>>> def add_money(amounts):
>>>> # do arithmetic in pennies so as not to
>>>> accumulate float errors
>>>> pennies = sum([round(int(amount * 100))
>> for
>>>> amount in amounts])
>>>> return float(pennies / 100.0)
>>>> import unittest
>>>> class TestAddMoney(unittest.TestCase):
>>>> def test_float_errors(self):
>>>>
>> self.failUnlessEqual(add_money([0.13,
>>>> 0.02]), 0.15)
>>>>
>> self.failUnlessEqual(add_money([100.01,
>>>> 99.99]), 200)
>>>> self.failUnlessEqual(add_money([0,
>>>> -13.00, 13.00]), 0)
>>>> if __name__ == '__main__':
>>>> unittest.main()
>>>>
>>> Just a minor quibble, but wouldn't you want the
>> import
>>> and test class to only get executed in the
>> ___main__
>>> context?
>> That would be fine too. In the real world, I'd put
>> the tests in a
>> different module.
>>
>
> Maybe this is the first good example that motivates a
> hyperlink to alternatives. Would you accept the idea
> that we keep my original example on the SimplePrograms
> page, but we link to a UnitTestingPhilosophies page,
> and we show your alternative there? Or vice versa,
> show your example on the first page, but then show
> mine on the hyperlinked page?
Sure. Either way is fine.
STeVe
More information about the Python-list
mailing list