Message108030
> 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. |
|
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 | |
|