mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
100 lines
4.4 KiB
Python
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()
|
|
|