Сначала создайте функцию для тестирования:
>>> def somecode():
... try:
... import cStringIO as StringIO
... print 'got cStringIO'
... except ImportError:
... import StringIO
... print 'got StringIO'
>>> somecode()
got cStringIO
Теперь, как объяснено здесь , вы можете подключить функцию импорта:
>>> import __builtin__
>>> original_import = __builtin__.__import__
>>> def import_hook(name, *args, **kwargs):
... if name == 'cStringIO': raise ImportError('test case module import failure')
... else: return original_import(name, *args, **kwargs)
...
>>>
>>> __builtin__.__import__ = import_hook
>>> somecode()
got StringIO
После теста вы должны установить его обратно:
>>> __builtin__.__import__ = original_import