ten small Python programs

Steve Howell showell30 at yahoo.com
Sun May 27 15:00:16 EDT 2007


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

I am in 100% agreement with you that most unit tests
would be completely outside the module, although I
often follow the practice that my modules have a
little "if __main__" section that runs a few simple
unit tests, as sort of a bit of self-documentation.




       
____________________________________________________________________________________Building a website is a piece of cake. Yahoo! Small Business gives you all the tools to get online.
http://smallbusiness.yahoo.com/webhosting 



More information about the Python-list mailing list