mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
99 lines
4.5 KiB
Python
99 lines
4.5 KiB
Python
"""
|
|
Unit tests for ``galaxy.web.base.pluginframework.PluginManager``
|
|
"""
|
|
import os
|
|
import imp
|
|
import unittest
|
|
|
|
import logging
|
|
log = logging.getLogger( __name__ )
|
|
|
|
test_utils = imp.load_source( 'test_utils',
|
|
os.path.join( os.path.dirname( __file__), '../../unittest_utils/utility.py' ) )
|
|
import galaxy_mock
|
|
|
|
from galaxy.web.base.pluginframework import PluginManager
|
|
|
|
|
|
class PluginManager_TestCase( test_utils.unittest.TestCase ):
|
|
|
|
def test_rel_path_search( self ):
|
|
"""should be able to search given rel. path"""
|
|
mock_app_dir = galaxy_mock.MockDir({
|
|
'plugins' : {
|
|
'plugin1' : {},
|
|
'plugin2' : {},
|
|
'file1' : 'blerbler'
|
|
}
|
|
})
|
|
mock_app = galaxy_mock.MockApp( root=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 = galaxy_mock.MockDir({})
|
|
mock_plugin_dir = galaxy_mock.MockDir({
|
|
'plugin1' : {},
|
|
'plugin2' : {},
|
|
'file1' : 'blerbler'
|
|
})
|
|
mock_app = galaxy_mock.MockApp( root=mock_app_dir.root_path )
|
|
plugin_mgr = PluginManager( mock_app, directories_setting=mock_plugin_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 = galaxy_mock.MockDir({
|
|
'plugins' : {
|
|
'plugin1' : {},
|
|
'plugin2' : {},
|
|
'file1' : 'blerbler'
|
|
}
|
|
})
|
|
mock_abs_plugin_dir = galaxy_mock.MockDir({
|
|
'plugin3' : {},
|
|
'plugin4' : {},
|
|
'file2' : 'blerbler'
|
|
})
|
|
mock_app = galaxy_mock.MockApp( root=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()
|