Message108030
| Author | belopolsky |
|---|---|
| Recipients | amaury.forgeotdarc, belopolsky, brett.cannon, brian.curtin, daniel.urban, lemburg, pitrou, r.david.murray, techtonik, vstinner |
| Date | 2010-06-17.15:35:10 |
| SpamBayes Score | 0.029444296 |
| Marked as misclassified | No |
| Message-id | <1276788912.15.0.431056625048.issue7989@psf.upfronthosting.co.za> |
| In-reply-to |
| Content | |
|---|---|
> The only alternative is to manually duplicate tests, these leads to very
> poor test coverage because of the average developer's laziness (json is
> an example).
No, here is another alternative:
==> _example.py <==
def foo():
print(__name__)
==> example.py <==
def foo():
print(__name__)
try:
from _example import *
except ImportError:
pass
==> test_example.py <==
import sys
sys.modules['_example'] = None
import example
example.foo()
del sys.modules['_example']
import _example as example
example.foo()
With the code above,
$ ./python.exe test_example.py
example
_example
If we move import to setUp(), we can run each test case twice: with and without native code. Tests that are specific to one implementation can be run once or skipped conditionally on per test method basis. |
|
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2010-06-17 15:35:12 | belopolsky | set | recipients: + belopolsky, lemburg, brett.cannon, amaury.forgeotdarc, pitrou, vstinner, techtonik, r.david.murray, brian.curtin, daniel.urban |
| 2010-06-17 15:35:12 | belopolsky | set | messageid: <1276788912.15.0.431056625048.issue7989@psf.upfronthosting.co.za> |
| 2010-06-17 15:35:10 | belopolsky | link | issue7989 messages |
| 2010-06-17 15:35:10 | belopolsky | create | |