Files
galaxy/test/unit/web/base/test_PluginManager.py
T

100 lines
4.4 KiB
Python

"""
Unit tests for ``galaxy.web.base.pluginframework.PluginManager``
"""
import os
import imp
import unittest
utility = imp.load_source( 'utility', '../../util/utility.py' )
log = utility.set_up_filelogger( __name__ + '.log' )
utility.add_galaxy_lib_to_path( 'test/unit/web/base' )
from galaxy.web.base.pluginframework import PluginManager
import mock
class PluginManager_TestCase( unittest.TestCase ):
def test_rel_path_search( self ):
"""should be able to search given rel. path"""
mock_app_dir = mock.MockDir({
'plugins' : {
'plugin1' : {},
'plugin2' : {},
'file1' : 'blerbler'
}
})
mock_app = mock.MockApp( mock_app_dir.root_path )
plugin_mgr = PluginManager( mock_app, directories_setting='plugins' )
app_path = mock_app_dir.root_path
expected_plugins_path = os.path.join( app_path, 'plugins' )
self.assertItemsEqual( plugin_mgr.directories, [ expected_plugins_path ] )
self.assertItemsEqual( plugin_mgr.plugins.keys(), [ 'plugin1', 'plugin2' ] )
self.assertEqual( plugin_mgr.plugins[ 'plugin1' ].name, 'plugin1' )
self.assertEqual( plugin_mgr.plugins[ 'plugin1' ].path, os.path.join( expected_plugins_path, 'plugin1' ) )
self.assertEqual( plugin_mgr.plugins[ 'plugin2' ].name, 'plugin2' )
self.assertEqual( plugin_mgr.plugins[ 'plugin2' ].path, os.path.join( expected_plugins_path, 'plugin2' ) )
mock_app_dir.remove()
def test_abs_path_search( self ):
"""should be able to search given abs. path"""
mock_app_dir = mock.MockDir({})
mock_plugin_dir = mock.MockDir({
'plugin1' : {},
'plugin2' : {},
'file1' : 'blerbler'
})
mock_app = mock.MockApp( mock_app_dir.root_path )
plugin_mgr = PluginManager( mock_app, directories_setting=mock_plugin_dir.root_path )
app_path = mock_app_dir.root_path
expected_plugins_path = mock_plugin_dir.root_path
self.assertItemsEqual( plugin_mgr.directories, [ expected_plugins_path ] )
self.assertItemsEqual( plugin_mgr.plugins.keys(), [ 'plugin1', 'plugin2' ] )
self.assertEqual( plugin_mgr.plugins[ 'plugin1' ].name, 'plugin1' )
self.assertEqual( plugin_mgr.plugins[ 'plugin1' ].path, os.path.join( expected_plugins_path, 'plugin1' ) )
self.assertEqual( plugin_mgr.plugins[ 'plugin2' ].name, 'plugin2' )
self.assertEqual( plugin_mgr.plugins[ 'plugin2' ].path, os.path.join( expected_plugins_path, 'plugin2' ) )
def test_multiple_dirs( self ):
"""should search in multiple directories"""
mock_app_dir = mock.MockDir({
'plugins' : {
'plugin1' : {},
'plugin2' : {},
'file1' : 'blerbler'
}
})
mock_abs_plugin_dir = mock.MockDir({
'plugin3' : {},
'plugin4' : {},
'file2' : 'blerbler'
})
mock_app = mock.MockApp( mock_app_dir.root_path )
directories_setting=','.join([ 'plugins', mock_abs_plugin_dir.root_path ])
plugin_mgr = PluginManager( mock_app, directories_setting=directories_setting )
app_path = mock_app_dir.root_path
expected_plugins_rel_path = os.path.join( app_path, 'plugins' )
expected_plugins_abs_path = mock_abs_plugin_dir.root_path
self.assertItemsEqual( plugin_mgr.directories, [ expected_plugins_rel_path, expected_plugins_abs_path ] )
self.assertItemsEqual( plugin_mgr.plugins.keys(), [ 'plugin1', 'plugin2', 'plugin3', 'plugin4' ] )
self.assertEqual( plugin_mgr.plugins[ 'plugin1' ].name, 'plugin1' )
self.assertEqual( plugin_mgr.plugins[ 'plugin1' ].path, os.path.join( expected_plugins_rel_path, 'plugin1' ) )
self.assertEqual( plugin_mgr.plugins[ 'plugin2' ].name, 'plugin2' )
self.assertEqual( plugin_mgr.plugins[ 'plugin2' ].path, os.path.join( expected_plugins_rel_path, 'plugin2' ) )
self.assertEqual( plugin_mgr.plugins[ 'plugin3' ].name, 'plugin3' )
self.assertEqual( plugin_mgr.plugins[ 'plugin3' ].path, os.path.join( expected_plugins_abs_path, 'plugin3' ) )
self.assertEqual( plugin_mgr.plugins[ 'plugin4' ].name, 'plugin4' )
self.assertEqual( plugin_mgr.plugins[ 'plugin4' ].path, os.path.join( expected_plugins_abs_path, 'plugin4' ) )
if __name__ == '__main__':
unittest.main()