Opened 16 years ago
Closed 12 years ago
#10973 closed New feature (wontfix)
simpler doctesting
Reported by: | pcicman | Owned by: | nobody |
---|---|---|---|
Component: | Testing framework | Version: | 1.0 |
Severity: | Normal | Keywords: | doctest modules |
Cc: | Triage Stage: | Design decision needed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | yes | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
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.
Attachments (1)
Change History (7)
by , 16 years ago
Attachment: | auto_doctest.diff added |
---|
comment:1 by , 16 years ago
Has patch: | set |
---|---|
Needs tests: | set |
comment:2 by , 15 years ago
Triage Stage: | Unreviewed → Design decision needed |
---|
I like this too, worth bringing up after 1.1
comment:3 by , 14 years ago
Severity: | → Normal |
---|---|
Type: | → New feature |
comment:6 by , 12 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Time has passed since this ticket was last discussed, and it no longer looks like a good idea. The trend is to remove custom support for doctests, not to extend it. See #18727 for more details.
For what it's worth, I agree with this suggestion. I had actually done something similar to automate the doctesting of my own modules. Pcicman, I took the liberty of making a patch out of your code. It could use some tests, though.