Go to Google Groups Home    comp.lang.python
Re: ten small Python programs

Steven Bethard <steven.beth...@gmail.com>

Steve Howell wrote:
> --- Steven Bethard <steven.beth...@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.

STeVe