#10973: simpler doctesting
-------------------------------+--------------------------------------------
 Reporter:  pcicman            |       Owner:  nobody    
   Status:  new                |   Milestone:            
Component:  Testing framework  |     Version:  1.0       
 Keywords:  doctest modules    |       Stage:  Unreviewed
Has_patch:  0                  |  
-------------------------------+--------------------------------------------
 First of all, i found doctests very useful in last time, i just think the
 way how django does executes can be little bit simplified.
 (I know i can write my own test runner, and define it in settings)

 By default django takes look only to models.py and tests.py, if they
 exists, but there may be other modules in application which should be
 tested, but there isn't any 'magic' way how to do it.

 The nice thing is - suite can be defined it tests.py, so its possible to
 add any other modules to suite, e.g:
 {{{
 suite = unittest.TestSuite()
 for mod in ['crawl.page.utils', __name__]:
     suite.addTest(doctest.DocTestSuite(mod))
 }}}
 So i'm able to make doctests on other modules also, it just requires few
 imports and few lines of code.
 I think i can be easier, the only one required thing will be to add some
 stuff to test.simple.build_suite.

 There can be by convenience check for existence of some variable, e.g.
 '''doctest_modules'''. If it exists, all the modules founded inside can be
 added to suite, so:

 == in tests.py ==
 {{{
 from some app import foo
 doctest_modules = ['someapp.utils', foo]
 }}}

 == then to build_suite function can be just added ==
 {{{
 if hasattr(test_module, 'doctest_modules'):
             for module in test_module.doctest_modules:
                 suite.addTest(doctest.DocTestSuite(module,
                               checker=doctestOutputChecker,
                               runner=DocTestRunner))
 }}}
 And it will do all the magic.

 I just personally think this may be helpful, mostly for bigger
 applications.

 It can be also more generalized, maybe '''test_modules''' instead of
 '''doctest_modules''', then just import them in the test framework, check
 for suite, or doctests, and so on... but i dont think this it is a good
 idea - to create unitest suites in every module, they should just stay in
 tests.py.

 On other side, i think i will be just nice to have simple possibility to
 run doctests on other modules, simple variable (list/tuple) can be a
 solution.

-- 
Ticket URL: <http://code.djangoproject.com/ticket/10973>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to