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