[py-dev] how to test fallbacks for missing modules?
holger krekel
holger at merlinux.eu
Sat Sep 26 18:19:56 CEST 2009
On Sat, Sep 26, 2009 at 18:05 +0200, Ronny Pfannschmidt wrote:
> On Sat, 2009-09-26 at 17:02 +0200, holger krekel wrote:
> > Hi Ronny,
> >
> > > i wonder what would be a good way to test the handling of unimportable
> > > modules or fallbacks for missing modules.
> > > i don't have any initial idea on how to get started with that.
> >
> > what i usually do is to provide the to-be-unimportable module
> > but put e.g. "raise ImportError()" into it. Using the 'tmpdir'
> > and 'monkeypatch' funcargs makes it easy to do this, e.g.:
> >
> > def test_unimportable(tmpdir, monkeypatch):
> > tmpdir.join("docutils.py").write("raise ImportError()")
> > monkeypatch.setattr(sys, 'path', [str(tmpdir)] + sys.path)
> >
> > ..call-and-assert..
>
> unfortunately that doesnt help with modules that are already imported
> unless of course i use something like propper process based sandboxing
> for all tests (and i'd like to avoid that)
yes, either requires running things in a new process or hacking
'sys.modules' as well - which you could all do through a nice funcarg.
holger
More information about the py-dev
mailing list