mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Tool shed functional test enhancements. Functional tests for displaying images on a tool's page. Updated test string in tool migration stage test.
This commit is contained in:
@@ -838,6 +838,11 @@ class ShedTwillTestCase( TwillTestCase ):
|
||||
self.visit_url( url )
|
||||
self.check_for_strings( strings_displayed, strings_not_displayed )
|
||||
|
||||
def load_page_for_installed_tool( self, tool_guid, strings_displayed=[], strings_not_displayed=[] ):
|
||||
url = '/tool_runner?tool_id=%s' % tool_guid
|
||||
self.visit_galaxy_url( url )
|
||||
self.check_for_strings( strings_displayed, strings_not_displayed )
|
||||
|
||||
def load_workflow_image_in_tool_shed( self, repository, workflow_name, changeset_revision=None, strings_displayed=[], strings_not_displayed=[] ):
|
||||
if not changeset_revision:
|
||||
changeset_revision = self.get_repository_tip( repository )
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
|
||||
import tool_shed.base.test_db_util as test_db_util
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
repository_name = 'htseq_count_0140'
|
||||
repository_description = "Converter: BED to GFF"
|
||||
repository_long_description = "Convert bed to gff"
|
||||
|
||||
category_name = 'Test 0140 Tool Help Images'
|
||||
category_description = 'Test 0140 Tool Help Images'
|
||||
|
||||
'''
|
||||
1) Create and populate the htseq_count_0140 repository.
|
||||
2) Visit the manage_repository page.
|
||||
3) Simulate clicking the htseq_count tool button.
|
||||
4) On the resulting display tool page, look for the image string similar to the following string where the encoded repository_id is previously determined:
|
||||
|
||||
src="/repository/static/images/<id>/count_modes.png"
|
||||
|
||||
'''
|
||||
|
||||
|
||||
class TestToolHelpImages( ShedTwillTestCase ):
|
||||
'''Test features related to tool help images.'''
|
||||
|
||||
def test_0000_initiate_users( self ):
|
||||
"""Create necessary user accounts."""
|
||||
self.logout()
|
||||
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
|
||||
test_user_1 = test_db_util.get_user( common.test_user_1_email )
|
||||
assert test_user_1 is not None, 'Problem retrieving user with email %s from the database' % test_user_1_email
|
||||
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
|
||||
self.logout()
|
||||
self.login( email=common.admin_email, username=common.admin_username )
|
||||
admin_user = test_db_util.get_user( common.admin_email )
|
||||
assert admin_user is not None, 'Problem retrieving user with email %s from the database' % admin_email
|
||||
admin_user_private_role = test_db_util.get_private_role( admin_user )
|
||||
|
||||
def test_0005_create_htseq_count_repository( self ):
|
||||
'''Create and populate htseq_count_0140.'''
|
||||
'''
|
||||
We are at step 1 - Create and populate the htseq_count_0140 repository.
|
||||
Create the htseq_count_0140 repository and upload the tarball.
|
||||
'''
|
||||
category = self.create_category( name=category_name, description=category_description )
|
||||
self.logout()
|
||||
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
|
||||
# Create a repository named htseq_count_0140 owned by user1.
|
||||
repository = self.get_or_create_repository( name=repository_name,
|
||||
description=repository_description,
|
||||
long_description=repository_long_description,
|
||||
owner=common.test_user_1_name,
|
||||
category_id=self.security.encode_id( category.id ),
|
||||
strings_displayed=[] )
|
||||
# Upload htseq_count.tar to the repository.
|
||||
self.upload_file( repository,
|
||||
filename='htseq_count/htseq_count.tar',
|
||||
filepath=None,
|
||||
valid_tools_only=True,
|
||||
uncompress_file=False,
|
||||
remove_repo_files_not_in_tar=False,
|
||||
commit_message='Uploaded htseq_count.tar.',
|
||||
strings_displayed=[],
|
||||
strings_not_displayed=[] )
|
||||
|
||||
def test_0010_load_tool_page( self ):
|
||||
'''Load the tool page and check for the image.'''
|
||||
'''
|
||||
We are at step 2
|
||||
Visit the manage_repository page and the tool page, and look for the image url
|
||||
similar to the following string:
|
||||
|
||||
src="/repository/static/images/<id>/count_modes.png"
|
||||
'''
|
||||
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
|
||||
# Get the repository tip.
|
||||
changeset_revision = self.get_repository_tip( repository )
|
||||
self.display_manage_repository_page( repository )
|
||||
# Generate the image path.
|
||||
image_path = 'src="/repository/static/images/%s/count_modes.png"' % self.security.encode_id( repository.id )
|
||||
# The repository uploaded in this test should only have one metadata revision, with one tool defined, which
|
||||
# should be the tool that contains a link to the image.
|
||||
repository_metadata = repository.metadata_revisions[ 0 ].metadata
|
||||
tool_path = repository_metadata[ 'tools' ][ 0 ][ 'tool_config' ]
|
||||
self.load_display_tool_page( repository, tool_path, changeset_revision, strings_displayed=[ image_path ], strings_not_displayed=[] )
|
||||
@@ -1,7 +1,8 @@
|
||||
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
|
||||
import tool_shed.base.test_db_util as test_db_util
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
log = logging.getLogger( __name__ )
|
||||
|
||||
datatypes_repository_name = 'emboss_datatypes_0430'
|
||||
datatypes_repository_description = 'Galaxy applicable datatypes for EMBOSS for test 0430'
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
|
||||
import tool_shed.base.test_db_util as test_db_util
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
repository_name = 'htseq_count_0140'
|
||||
repository_description = "Converter: BED to GFF"
|
||||
repository_long_description = "Convert bed to gff"
|
||||
|
||||
category_name = 'Test 0140 Tool Help Images'
|
||||
category_description = 'Test 0140 Tool Help Images'
|
||||
|
||||
'''
|
||||
1) Create and populate the htseq_count_0140 repository.
|
||||
2) Visit the manage_repository page, then the tool page, and look for the image string
|
||||
similar to the following string where the encoded repository_id is previously determined:
|
||||
|
||||
src="/repository/static/images/<id>/count_modes.png"
|
||||
|
||||
Galaxy side:
|
||||
1) Install the htseq_count repository from the tool shed into Galaxy.
|
||||
2) In the center tool panel, look for the image string similar to the following string where the encoded_repository_id is previously determined as the installed ToolShedRepository id:
|
||||
|
||||
src="/tool_runner/static/images/<id>/count_modes.png"
|
||||
'''
|
||||
|
||||
|
||||
class TestToolHelpImages( ShedTwillTestCase ):
|
||||
'''Test features related to tool help images.'''
|
||||
|
||||
def test_0000_initiate_users( self ):
|
||||
"""Create necessary user accounts."""
|
||||
self.logout()
|
||||
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
|
||||
test_user_1 = test_db_util.get_user( common.test_user_1_email )
|
||||
assert test_user_1 is not None, 'Problem retrieving user with email %s from the database' % test_user_1_email
|
||||
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
|
||||
self.logout()
|
||||
self.login( email=common.admin_email, username=common.admin_username )
|
||||
admin_user = test_db_util.get_user( common.admin_email )
|
||||
assert admin_user is not None, 'Problem retrieving user with email %s from the database' % admin_email
|
||||
admin_user_private_role = test_db_util.get_private_role( admin_user )
|
||||
|
||||
def test_0005_create_htseq_count_repository( self ):
|
||||
'''Create and populate htseq_count_0140.'''
|
||||
'''
|
||||
We are at step 1 - Create and populate the htseq_count_0140 repository.
|
||||
Create the htseq_count_0140 repository and upload the tarball.
|
||||
'''
|
||||
category = self.create_category( name=category_name, description=category_description )
|
||||
self.logout()
|
||||
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
|
||||
# Create a repository named htseq_count_0140 owned by user1.
|
||||
repository = self.get_or_create_repository( name=repository_name,
|
||||
description=repository_description,
|
||||
long_description=repository_long_description,
|
||||
owner=common.test_user_1_name,
|
||||
category_id=self.security.encode_id( category.id ),
|
||||
strings_displayed=[] )
|
||||
if self.repository_is_new( repository ):
|
||||
# Upload htseq_count.tar to the repository if it hasn't already been populated.
|
||||
self.upload_file( repository,
|
||||
filename='htseq_count/htseq_count.tar',
|
||||
filepath=None,
|
||||
valid_tools_only=True,
|
||||
uncompress_file=False,
|
||||
remove_repo_files_not_in_tar=False,
|
||||
commit_message='Uploaded htseq_count.tar.',
|
||||
strings_displayed=[],
|
||||
strings_not_displayed=[] )
|
||||
|
||||
def test_0010_load_tool_page( self ):
|
||||
'''Load the tool page and check for the image URL.'''
|
||||
'''
|
||||
This is a duplicate of test method _0010 in test_0140_tool_help_images.
|
||||
'''
|
||||
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
|
||||
# Get the repository tip.
|
||||
changeset_revision = self.get_repository_tip( repository )
|
||||
self.display_manage_repository_page( repository )
|
||||
# Generate the image path.
|
||||
image_path = 'src="/repository/static/images/%s/count_modes.png"' % self.security.encode_id( repository.id )
|
||||
# The repository uploaded in this test should only have one metadata revision, with one tool defined, which
|
||||
# should be the tool that contains a link to the image.
|
||||
repository_metadata = repository.metadata_revisions[ 0 ].metadata
|
||||
tool_path = repository_metadata[ 'tools' ][ 0 ][ 'tool_config' ]
|
||||
self.load_display_tool_page( repository, tool_path, changeset_revision, strings_displayed=[ image_path ], strings_not_displayed=[] )
|
||||
|
||||
def test_0015_install_htseq_count_repository( self ):
|
||||
'''Install the htseq_count_0140 repository into Galaxy.'''
|
||||
'''
|
||||
We are at step 1 - Install the htseq_count_0140 repository from the tool shed into Galaxy.
|
||||
'''
|
||||
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
|
||||
self.galaxy_logout()
|
||||
self.galaxy_login( email=common.admin_email, username=common.admin_username )
|
||||
self.install_repository( 'htseq_count_0140',
|
||||
'user1',
|
||||
category_name,
|
||||
strings_displayed=[],
|
||||
install_tool_dependencies=False,
|
||||
install_repository_dependencies=False )
|
||||
|
||||
def test_0020_verify_tool_image_link( self ):
|
||||
'''Load the tool page and verify the image link.'''
|
||||
'''
|
||||
We are at step 2
|
||||
|
||||
In the center tool panel, look for the image string similar to the following string where the
|
||||
encoded_repository_id is previously determined as the installed ToolShedRepository id:
|
||||
|
||||
src="/tool_runner/static/images/<id>/count_modes.png"
|
||||
'''
|
||||
repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
|
||||
image_path = 'src="/tool_runner/static/images/%s/count_modes.png"' % self.security.encode_id( repository.id )
|
||||
# The repository uploaded in this test should only define one tool, which should be the tool that contains a link to an image.
|
||||
repository_metadata = repository.metadata
|
||||
tool_id = repository_metadata[ 'tools' ][ 0 ][ 'guid' ]
|
||||
self.load_page_for_installed_tool( tool_id, strings_displayed=[ image_path ] )
|
||||
@@ -1,8 +1,10 @@
|
||||
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
|
||||
import tool_shed.base.test_db_util as test_db_util
|
||||
|
||||
|
||||
class TestToolMigrationStages( ShedTwillTestCase ):
|
||||
'''Verify that the migration stages display correctly.'''
|
||||
|
||||
def test_0000_initiate_users( self ):
|
||||
"""Create necessary user accounts and login as an admin user."""
|
||||
self.logout()
|
||||
@@ -15,11 +17,12 @@ class TestToolMigrationStages( ShedTwillTestCase ):
|
||||
admin_user = test_db_util.get_user( common.admin_email )
|
||||
assert admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
|
||||
admin_user_private_role = test_db_util.get_private_role( admin_user )
|
||||
|
||||
def test_0005_load_migration_stages_page( self ):
|
||||
'''Load the migration page and check for the appropriate migration stages.'''
|
||||
stages = [
|
||||
'emboss_5', 'emboss_datatypes', 'emboss', '5.0.0', '0002_tools.sh',
|
||||
'freebayes', '0.9.4_a46483351fd0196637614121868fb5c386612b55', 'samtools', '0.1.18', 'FreeBayes requires g++',
|
||||
'freebayes', '0.9.4_9696d0ce8a962f7bb61c4791be5ce44312b81cf8', 'samtools', '0.1.18', 'FreeBayes requires g++',
|
||||
'ncurses', 'zlib', '0003_tools.sh',
|
||||
'ncbi_blast_plus', 'blast_datatypes', 'blast+', '2.2.26+', 'blast.ncbi.nlm.nih.gov', 'NCBI BLAST+ tools', '0004_tools.sh',
|
||||
'bwa_wrappers', '0.5.9', 'zlib and libpthread', 'Map with BWA for Illumina', '0005_tools.sh',
|
||||
|
||||
Reference in New Issue
Block a user