mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
126 lines
5.1 KiB
Python
126 lines
5.1 KiB
Python
"""
|
|
"""
|
|
import os
|
|
import imp
|
|
|
|
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 PageServingPluginManager
|
|
|
|
|
|
# ----------------------------------------------------------------------------- globals
|
|
contents1 = """${what} ${you} ${say}"""
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
class PageServingPluginManager_TestCase( test_utils.unittest.TestCase ):
|
|
|
|
def test_plugin_load( self ):
|
|
"""should attempt load if criteria met"""
|
|
mock_app_dir = galaxy_mock.MockDir({
|
|
'plugins' : {
|
|
'plugin1' : {
|
|
'templates' : {},
|
|
'static' : {}
|
|
},
|
|
'plugin2' : {
|
|
'static' : {}
|
|
},
|
|
'plugin3' : {
|
|
'templates' : {}
|
|
},
|
|
'not_a_plugin1' : 'blerbler',
|
|
'not_a_plugin2' : {},
|
|
}
|
|
})
|
|
mock_app = galaxy_mock.MockApp( root=mock_app_dir.root_path )
|
|
plugin_mgr = PageServingPluginManager( mock_app, 'test', directories_setting='plugins' )
|
|
|
|
app_path = mock_app_dir.root_path
|
|
expected_plugins_path = os.path.join( app_path, 'plugins' )
|
|
|
|
self.assertEqual( plugin_mgr.base_url, 'test' )
|
|
self.assertItemsEqual( plugin_mgr.directories, [ expected_plugins_path ] )
|
|
self.assertItemsEqual( plugin_mgr.plugins.keys(), [ 'plugin1', 'plugin2', 'plugin3' ] )
|
|
|
|
plugin1 = plugin_mgr.plugins[ 'plugin1' ]
|
|
self.assertEqual( plugin1.name, 'plugin1' )
|
|
self.assertEqual( plugin1.path, os.path.join( expected_plugins_path, 'plugin1' ) )
|
|
self.assertEqual( plugin1.base_url, '/'.join([ plugin_mgr.base_url, plugin1.name ]) )
|
|
self.assertTrue( plugin1.serves_static )
|
|
self.assertEqual( plugin1.static_path, os.path.join( plugin1.path, 'static' ) )
|
|
self.assertEqual( plugin1.static_url, '/'.join([ plugin1.base_url, 'static' ]) )
|
|
self.assertTrue( plugin1.serves_templates )
|
|
self.assertEqual( plugin1.template_path, os.path.join( plugin1.path, 'templates' ) )
|
|
self.assertEqual( plugin1.template_lookup.__class__.__name__, 'TemplateLookup' )
|
|
|
|
plugin2 = plugin_mgr.plugins[ 'plugin2' ]
|
|
self.assertEqual( plugin2.name, 'plugin2' )
|
|
self.assertEqual( plugin2.path, os.path.join( expected_plugins_path, 'plugin2' ) )
|
|
self.assertEqual( plugin2.base_url, '/'.join([ plugin_mgr.base_url, plugin2.name ]) )
|
|
self.assertTrue( plugin2.serves_static )
|
|
self.assertEqual( plugin2.static_path, os.path.join( plugin2.path, 'static' ) )
|
|
self.assertEqual( plugin2.static_url, '/'.join([ plugin2.base_url, 'static' ]) )
|
|
self.assertFalse( plugin2.serves_templates )
|
|
|
|
plugin3 = plugin_mgr.plugins[ 'plugin3' ]
|
|
self.assertEqual( plugin3.name, 'plugin3' )
|
|
self.assertEqual( plugin3.path, os.path.join( expected_plugins_path, 'plugin3' ) )
|
|
self.assertEqual( plugin3.base_url, '/'.join([ plugin_mgr.base_url, plugin3.name ]) )
|
|
self.assertFalse( plugin3.serves_static )
|
|
self.assertTrue( plugin3.serves_templates )
|
|
self.assertEqual( plugin1.template_path, os.path.join( plugin1.path, 'templates' ) )
|
|
self.assertEqual( plugin1.template_lookup.__class__.__name__, 'TemplateLookup' )
|
|
|
|
mock_app_dir.remove()
|
|
|
|
def test_plugin_static_map( self ):
|
|
""""""
|
|
mock_app_dir = galaxy_mock.MockDir({
|
|
'plugins' : {
|
|
'plugin1' : {
|
|
'templates' : {},
|
|
'static' : {}
|
|
}
|
|
}
|
|
})
|
|
mock_app = galaxy_mock.MockApp( root=mock_app_dir.root_path )
|
|
plugin_mgr = PageServingPluginManager( mock_app, 'test', directories_setting='plugins' )
|
|
|
|
self.assertItemsEqual( plugin_mgr.plugins.keys(), [ 'plugin1' ] )
|
|
plugin = plugin_mgr.plugins[ 'plugin1' ]
|
|
self.assertEqual( plugin_mgr.get_static_urls_and_paths(), [( plugin.static_url, plugin.static_path )] )
|
|
|
|
mock_app_dir.remove()
|
|
|
|
def test_plugin_templates( self ):
|
|
""""""
|
|
mock_app_dir = galaxy_mock.MockDir({
|
|
'plugins' : {
|
|
'plugin1' : {
|
|
'templates' : {
|
|
'test.mako' : contents1
|
|
},
|
|
}
|
|
}
|
|
})
|
|
mock_app = galaxy_mock.MockApp( root=mock_app_dir.root_path )
|
|
plugin_mgr = PageServingPluginManager( mock_app, 'test', directories_setting='plugins' )
|
|
|
|
self.assertItemsEqual( plugin_mgr.plugins.keys(), [ 'plugin1' ] )
|
|
plugin = plugin_mgr.plugins[ 'plugin1' ]
|
|
rendered = plugin_mgr.fill_template( galaxy_mock.MockTrans(), plugin, 'test.mako',
|
|
what='Hey', you='Ho', say='HeyHey HoHo' )
|
|
self.assertEqual( rendered, 'Hey Ho HeyHey HoHo' )
|
|
|
|
mock_app_dir.remove()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
test_utils.unittest.main()
|