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:

>> 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.

> 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