Files
scikit-image/skimage/io/tests/test_plugin.py
T
Tony S Yu 312151b481 Move __init__ functions to submodules.
And rename functions so we don't have to alias imports.
2013-12-05 23:19:44 -06:00

89 lines
2.3 KiB
Python

from numpy.testing import *
from skimage import io
from skimage.io._plugins import plugin
from numpy.testing.decorators import skipif
try:
io.use_plugin('pil')
PIL_available = True
priority_plugin = 'pil'
except ImportError:
PIL_available = False
try:
io.use_plugin('freeimage')
FI_available = True
priority_plugin = 'freeimage'
except RuntimeError:
FI_available = False
def setup_module(self):
plugin.use_plugin('test') # see ../_plugins/test_plugin.py
def teardown_module(self):
io.reset_plugins()
class TestPlugin:
def test_read(self):
io.imread('test.png', as_grey=True, dtype='i4', plugin='test')
def test_save(self):
io.imsave('test.png', [1, 2, 3], plugin='test')
def test_show(self):
io.imshow([1, 2, 3], plugin_arg=(1, 2), plugin='test')
def test_collection(self):
io.imread_collection('*.png', conserve_memory=False, plugin='test')
def test_use(self):
plugin.use_plugin('test')
plugin.use_plugin('test', 'imshow')
@raises(ValueError)
def test_failed_use(self):
plugin.use_plugin('asd')
@skipif(not PIL_available and not FI_available)
def test_use_priority(self):
plugin.use_plugin(priority_plugin)
plug, func = plugin.plugin_store['imread'][0]
assert_equal(plug, priority_plugin)
plugin.use_plugin('test')
plug, func = plugin.plugin_store['imread'][0]
assert_equal(plug, 'test')
@skipif(not PIL_available)
def test_use_priority_with_func(self):
plugin.use_plugin('pil')
plug, func = plugin.plugin_store['imread'][0]
assert_equal(plug, 'pil')
plugin.use_plugin('test', 'imread')
plug, func = plugin.plugin_store['imread'][0]
assert_equal(plug, 'test')
plug, func = plugin.plugin_store['imsave'][0]
assert_equal(plug, 'pil')
plugin.use_plugin('test')
plug, func = plugin.plugin_store['imsave'][0]
assert_equal(plug, 'test')
def test_plugin_order(self):
p = io.plugin_order()
assert 'imread' in p
assert 'test' in p['imread']
def test_available(self):
assert 'qt' in io.available_plugins
assert 'test' in io.find_available_plugins(loaded=True)
if __name__ == "__main__":
run_module_suite()