Update functional tests to account for the changes to when repositories can be uninstalled. Add tool panel section to tool API return value. Move test_db_util import to twilltestcase. Update tool test metadata generation.

This commit is contained in:
Dave Bouvier
2013-12-13 23:07:07 -05:00
parent 14034833a2
commit d4e4697a21
69 changed files with 1099 additions and 1168 deletions
+18
View File
@@ -1075,6 +1075,22 @@ class Tool( object, Dictifiable ):
:returns: galaxy.jobs.JobDestination -- The destination definition and runner parameters.
"""
return self.app.job_config.get_destination(self.__get_job_tool_configuration(job_params=job_params).destination)
def get_panel_section( self ):
for key, item in self.app.toolbox.integrated_tool_panel.items():
if item:
if key.startswith( 'tool_' ):
if item.id == self.id:
return '', ''
if key.startswith( 'section_' ):
section_id = item.id or ''
section_name = item.name or ''
for section_key, section_item in item.elems.items():
if section_key.startswith( 'tool_' ):
if section_item:
if section_item.id == self.id:
return section_id, section_name
return None, None
def parse( self, root, guid=None ):
"""
@@ -3010,6 +3026,8 @@ class Tool( object, Dictifiable ):
if io_details:
tool_dict[ 'inputs' ] = [ input.to_dict( trans ) for input in self.inputs.values() ]
tool_dict[ 'outputs' ] = [ output.to_dict() for output in self.outputs.values() ]
tool_dict[ 'panel_section_id' ], tool_dict[ 'panel_section_name' ] = self.get_panel_section()
return tool_dict
+6 -1
View File
@@ -940,7 +940,12 @@ def generate_tool_metadata( tool_config, tool, repository_clone_url, metadata_di
for required_file in ttb.required_files:
value, extra = required_file
required_files.append( ( value ) )
inputs = [ input for input in ttb.inputs ]
inputs = []
for input_field, values in ttb.inputs.iteritems():
if len( values ) == 1:
inputs.append( ( input_field, values[0] ) )
else:
inputs.append( ( input_field, values ) )
outputs = []
for output in ttb.outputs:
name, file_name, extra = output
+38 -16
View File
@@ -9,6 +9,7 @@ import logging
import time
import tempfile
import tarfile
import urllib
import galaxy.webapps.tool_shed.util.hgweb_config
import galaxy.model.tool_shed_install as galaxy_model
import galaxy.util as util
@@ -46,6 +47,7 @@ class ShedTwillTestCase( TwillTestCase ):
self.tool_shed_test_file = None
self.tool_data_path = os.environ.get( 'GALAXY_TEST_TOOL_DATA_PATH' )
self.shed_tool_conf = os.environ.get( 'GALAXY_TEST_SHED_TOOL_CONF' )
self.test_db_util = test_db_util
# TODO: Figure out a way to alter these attributes during tests.
self.galaxy_tool_dependency_dir = os.environ.get( 'GALAXY_TEST_TOOL_DEPENDENCY_DIR' )
self.shed_tools_dict = {}
@@ -121,20 +123,17 @@ class ShedTwillTestCase( TwillTestCase ):
def check_galaxy_repository_tool_panel_section( self, repository, expected_tool_panel_section ):
metadata = repository.metadata
assert 'tools' in metadata, 'Tools not found in metadata: %s' % metadata
assert 'tools' in metadata, 'Tools not found in repository metadata: %s' % metadata
tool_metadata = metadata[ 'tools' ]
# If integrated_tool_panel.xml is to be tested, this test method will need to be enhanced to handle tools
# from the same repository in different tool panel sections. Getting the first tool guid is ok, because
# currently all tools contained in a single repository will be loaded into the same tool panel section.
tool_guid = tool_metadata[ 0 ][ 'guid' ]
assert 'tool_panel_section' in metadata, 'Tool panel section not found in metadata: %s' % metadata
tool_panel_section_metadata = metadata[ 'tool_panel_section' ]
# tool_section_dict = dict( tool_config=guids_and_configs[ guid ],
# id=section_id,
# name=section_name,
# version=section_version )
# This dict is appended to tool_panel_section_metadata[ tool_guid ]
tool_panel_section = tool_panel_section_metadata[ tool_guid ][ 0 ][ 'name' ]
if repository.status in [ galaxy_model.ToolShedRepository.installation_status.UNINSTALLED,
galaxy_model.ToolShedRepository.installation_status.DEACTIVATED ]:
tool_panel_section = self.get_tool_panel_section_from_repository_metadata( metadata )
else:
log.debug( 'Status is %s' % repository.status )
tool_panel_section = self.get_tool_panel_section_from_api( metadata )
assert tool_panel_section == expected_tool_panel_section, 'Expected to find tool panel section *%s*, but instead found *%s*\nMetadata: %s\n' % \
( expected_tool_panel_section, tool_panel_section, metadata )
@@ -765,6 +764,28 @@ class ShedTwillTestCase( TwillTestCase ):
invalid_tools.append( dict( tools=repository_metadata.metadata[ 'invalid_tools' ], changeset_revision=repository_metadata.changeset_revision ) )
return valid_tools, invalid_tools
def get_tool_panel_section_from_api( self, metadata ):
tool_metadata = metadata[ 'tools' ]
tool_guid = urllib.quote_plus( tool_metadata[ 0 ][ 'guid' ], safe='' )
api_url = '/%s' % '/'.join( [ 'api', 'tools', tool_guid ] )
self.visit_galaxy_url( api_url )
tool_dict = from_json_string( self.last_page() )
tool_panel_section = tool_dict[ 'panel_section_name' ]
return tool_panel_section
def get_tool_panel_section_from_repository_metadata( self, metadata ):
tool_metadata = metadata[ 'tools' ]
tool_guid = tool_metadata[ 0 ][ 'guid' ]
assert 'tool_panel_section' in metadata, 'Tool panel section not found in metadata: %s' % metadata
tool_panel_section_metadata = metadata[ 'tool_panel_section' ]
# tool_section_dict = dict( tool_config=guids_and_configs[ guid ],
# id=section_id,
# name=section_name,
# version=section_version )
# This dict is appended to tool_panel_section_metadata[ tool_guid ]
tool_panel_section = tool_panel_section_metadata[ tool_guid ][ 0 ][ 'name' ]
return tool_panel_section
def grant_role_to_user( self, user, role ):
strings_displayed = [ self.security.encode_id( role.id ), role.name ]
strings_not_displayed = []
@@ -1049,11 +1070,13 @@ class ShedTwillTestCase( TwillTestCase ):
def reset_metadata_on_selected_repositories( self, repository_ids ):
self.visit_url( '/admin/reset_metadata_on_selected_repositories_in_tool_shed' )
log.debug( repository_ids )
kwd = dict( repository_ids=repository_ids )
self.submit_form( form_no=1, button="reset_metadata_on_selected_repositories_button", **kwd )
def reset_metadata_on_selected_installed_repositories( self, repository_ids ):
self.visit_galaxy_url( '/admin_toolshed/reset_metadata_on_selected_installed_repositories' )
log.debug( repository_ids )
kwd = dict( repository_ids=repository_ids )
self.submit_form( form_no=1, button="reset_metadata_on_selected_repositories_button", **kwd )
@@ -1173,16 +1196,15 @@ class ShedTwillTestCase( TwillTestCase ):
self.visit_url( url )
self.check_for_strings( strings_displayed, strings_not_displayed )
def uninstall_repository( self, installed_repository, remove_from_disk=True ):
def uninstall_repository( self, installed_repository, remove_from_disk=True, is_required=False, strings_displayed=[], strings_not_displayed=[] ):
url = '/admin_toolshed/deactivate_or_uninstall_repository?id=%s' % self.security.encode_id( installed_repository.id )
self.visit_galaxy_url( url )
if remove_from_disk:
tc.fv ( 1, "remove_from_disk", 'true' )
else:
tc.fv ( 1, "remove_from_disk", 'false' )
self.check_for_strings( strings_displayed, strings_not_displayed )
form = tc.browser.get_form( 'deactivate_or_uninstall_repository' )
kwd = self.set_form_value( form, {}, 'remove_from_disk', remove_from_disk )
tc.submit( 'deactivate_or_uninstall_repository_button' )
strings_displayed = [ 'The repository named' ]
if remove_from_disk:
if remove_from_disk and not is_required:
strings_displayed.append( 'has been uninstalled' )
else:
strings_displayed.append( 'has been deactivated' )
@@ -1,11 +1,8 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'filtering_0000'
repository_description = "Galaxy's filtering tool for test 0000"
repository_long_description = "Long description of Galaxy's filtering tool for test 0000"
class TestBasicRepositoryFeatures( ShedTwillTestCase ):
'''Test core repository features.'''
@@ -13,19 +10,19 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_categories( self ):
"""Create categories for this test suite"""
@@ -36,7 +33,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
"""Create the filtering repository"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
category = self.test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
'Repository %s has been created' % "<b>%s</b>" % repository_name ]
self.get_or_create_repository( name=repository_name,
@@ -48,7 +45,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0015_edit_repository( self ):
"""Edit the repository name, description, and long description"""
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
new_name = "renamed_filtering"
new_description = "Edited filtering tool"
new_long_description = "Edited long description"
@@ -56,20 +53,20 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0020_change_repository_category( self ):
"""Change the categories associated with the filtering repository"""
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.edit_repository_categories( repository,
categories_to_add=[ "Test 0000 Basic Repository Features 2" ],
categories_to_remove=[ "Test 0000 Basic Repository Features 1" ] )
def test_0025_grant_write_access( self ):
'''Grant write access to another user'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.grant_write_access( repository, usernames=[ common.test_user_2_name ] )
self.revoke_write_access( repository, common.test_user_2_name )
def test_0030_upload_filtering_1_1_0( self ):
"""Upload filtering_1.1.0.tar to the repository"""
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='filtering/filtering_1.1.0.tar',
filepath=None,
@@ -82,7 +79,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0035_verify_repository( self ):
'''Display basic repository pages'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
latest_changeset_revision = self.get_repository_tip( repository )
self.check_for_valid_tools( repository, strings_displayed=[ 'Filter1' ] )
self.check_count_of_metadata_revisions_associated_with_repository( repository, metadata_count=1 )
@@ -106,7 +103,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0040_alter_repository_states( self ):
'''Test toggling the malicious and deprecated repository flags.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
self.set_repository_malicious( repository,
@@ -132,7 +129,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0045_display_repository_tip_file( self ):
'''Display the contents of filtering.xml in the repository tip revision'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.display_repository_file_contents( repository=repository,
filename='filtering.xml',
filepath=None,
@@ -141,7 +138,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0050_upload_filtering_txt_file( self ):
'''Upload filtering.txt file associated with tool version 1.1.0.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='filtering/filtering_0000.txt',
filepath=None,
@@ -155,7 +152,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0055_upload_filtering_test_data( self ):
'''Upload filtering test data.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='filtering/filtering_test_data.tar',
filepath=None,
@@ -174,7 +171,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0060_upload_filtering_2_2_0( self ):
'''Upload filtering version 2.2.0'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='filtering/filtering_2.2.0.tar',
filepath=None,
@@ -187,8 +184,8 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0065_verify_filtering_repository( self ):
'''Verify the new tool versions and repository metadata.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
category = test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
category = self.test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
tip = self.get_repository_tip( repository )
self.check_for_valid_tools( repository )
strings_displayed = [ 'Select a revision' ]
@@ -209,7 +206,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0070_upload_readme_txt_file( self ):
'''Upload readme.txt file associated with tool version 2.2.0.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='readme.txt',
filepath=None,
@@ -228,26 +225,26 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0075_delete_readme_txt_file( self ):
'''Delete the readme.txt file.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.delete_files_from_repository( repository, filenames=[ 'readme.txt' ] )
self.check_count_of_metadata_revisions_associated_with_repository( repository, metadata_count=2 )
self.display_manage_repository_page( repository, strings_displayed=[ 'Readme&nbsp;file&nbsp;for&nbsp;filtering&nbsp;1.1.0' ] )
def test_0080_search_for_valid_filter_tool( self ):
'''Search for the filtering tool by tool ID, name, and version.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
tip_changeset = self.get_repository_tip( repository )
search_fields = dict( tool_id='Filter1', tool_name='filter', tool_version='2.2.0' )
self.search_for_valid_tools( search_fields=search_fields, strings_displayed=[ tip_changeset ], strings_not_displayed=[] )
def test_0085_verify_repository_metadata( self ):
'''Verify that resetting the metadata does not change it.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.verify_unchanged_repository_metadata( repository )
def test_0090_verify_reserved_repository_name_handling( self ):
'''Check that reserved repository names are handled correctly.'''
category = test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
category = self.test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
error_message = 'The term <b>repos</b> is a reserved word in the tool shed, so it cannot be used as a repository name.'
self.get_or_create_repository( name='repos',
description=repository_description,
@@ -260,7 +257,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
'''Check that reserved usernames are handled correctly.'''
self.logout()
self.login( email='baduser@bx.psu.edu', username='repos' )
test_user_1 = test_db_util.get_user( 'baduser@bx.psu.edu' )
test_user_1 = self.test_db_util.get_user( 'baduser@bx.psu.edu' )
assert test_user_1 is None, 'Creating user with public name "repos" succeeded.'
error_message = 'The term <b>repos</b> is a reserved word in the tool shed, so it cannot be used as a public user name.'
self.check_for_strings( strings_displayed=[ error_message ] )
@@ -275,7 +272,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
'''
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
message = 'This is a test message.'
strings_displayed = [ 'Contact the owner of the repository named', repository.name, 'streamline appropriate communication' ]
post_submit_strings_displayed = [ 'An error occurred sending your message by email' ]
@@ -286,25 +283,25 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0110_delete_filtering_repository( self ):
'''Delete the filtering_0000 repository and verify that it no longer has any downloadable revisions.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
self.delete_repository( repository )
# Explicitly reload all metadata revisions from the database, to ensure that we have the current status of the downloadable flag.
for metadata_revision in repository.metadata_revisions:
test_db_util.refresh( metadata_revision )
self.test_db_util.refresh( metadata_revision )
# Marking a repository as deleted should result in no metadata revisions being downloadable.
assert True not in [ metadata.downloadable for metadata in repository.metadata_revisions ]
def test_0115_undelete_filtering_repository( self ):
'''Undelete the filtering_0000 repository and verify that it now has two downloadable revisions.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
self.undelete_repository( repository )
# Explicitly reload all metadata revisions from the database, to ensure that we have the current status of the downloadable flag.
for metadata_revision in repository.metadata_revisions:
test_db_util.refresh( metadata_revision )
self.test_db_util.refresh( metadata_revision )
# Marking a repository as undeleted should result in all previously downloadable metadata revisions being downloadable again.
# In this case, there should be two downloadable revisions, one for filtering 1.1.0 and one for filtering 2.2.0.
assert True in [ metadata.downloadable for metadata in repository.metadata_revisions ]
@@ -316,7 +313,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
# Get the repository, so we can pass the encoded repository id and browse_repositories method to the set_email_alerts method.
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
strings_displayed = [ 'Total alerts added: 1, total alerts removed: 0' ]
self.enable_email_alerts( repository, strings_displayed=strings_displayed )
@@ -324,7 +321,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
'''Upload a new readme file to the filtering_0000 repository and verify that there is no error.'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
# Upload readme.txt to the filtering_0000 repository and verify that it is now displayed.
self.upload_file( repository,
filename='filtering/readme.txt',
@@ -339,7 +336,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
def test_0130_verify_handling_of_invalid_characters( self ):
'''Load the above changeset in the change log and confirm that there is no server error displayed.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
changeset_revision = self.get_repository_tip( repository )
repository_id = self.security.encode_id( repository.id )
changelog_tuples = self.get_repository_changelog_tuples( repository )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'freebayes_0010'
repository_description = "Galaxy's freebayes tool"
repository_long_description = "Long description of Galaxy's freebayes tool"
@@ -15,7 +13,6 @@ repository_long_description = "Long description of Galaxy's freebayes tool"
7. Check for the appropriate strings on the manage repository page.
'''
class TestFreebayesRepository( ShedTwillTestCase ):
'''Testing freebayes with tool data table entries, .loc files, and tool dependencies.'''
@@ -23,14 +20,14 @@ class TestFreebayesRepository( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_category( self ):
"""Create a category for this test suite"""
@@ -45,7 +42,7 @@ class TestFreebayesRepository( ShedTwillTestCase ):
'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( 'Test 0010 Repository With Tool Dependencies' )
category = self.test_db_util.get_category_by_name( 'Test 0010 Repository With Tool Dependencies' )
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
@@ -72,7 +69,7 @@ class TestFreebayesRepository( ShedTwillTestCase ):
We are at step 2 - Upload the tool_data_table_conf.xml.sample file.
Uploading the tool_data_table_conf.xml.sample alone should not make the tool valid, but the error message should change.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='freebayes/tool_data_table_conf.xml.sample',
filepath=None,
@@ -93,7 +90,7 @@ class TestFreebayesRepository( ShedTwillTestCase ):
We are at step 3 - Upload the tool_data_table_conf.xml.sample file.
Uploading the tool_data_table_conf.xml.sample alone should not make the tool valid, but the error message should change.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='freebayes/sam_fa_indices.loc.sample',
filepath=None,
@@ -110,7 +107,7 @@ class TestFreebayesRepository( ShedTwillTestCase ):
We are at step 4 - Upload a tool_dependencies.xml file that should not parse correctly.
Upload a tool_dependencies.xml file that contains <> in the text of the readme tag. This should show an error message about malformed xml.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename=os.path.join( 'freebayes', 'malformed_tool_dependencies', 'tool_dependencies.xml' ),
filepath=None,
@@ -127,7 +124,7 @@ class TestFreebayesRepository( ShedTwillTestCase ):
We are at step 5 - Upload a tool_dependencies.xml file that specifies a version that does not match the tool's requirements.
This should result in a message about the tool dependency configuration not matching the tool's requirements.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename=os.path.join( 'freebayes', 'invalid_tool_dependencies', 'tool_dependencies.xml' ),
filepath=None,
@@ -144,7 +141,7 @@ class TestFreebayesRepository( ShedTwillTestCase ):
We are at step 6 - Upload a valid tool_dependencies.xml file.
At this stage, there should be no errors on the upload page, as every missing or invalid file has been corrected.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename=os.path.join( 'freebayes', 'tool_dependencies.xml' ),
filepath=None,
@@ -161,7 +158,7 @@ class TestFreebayesRepository( ShedTwillTestCase ):
We are at step 7 - Check for the appropriate strings on the manage repository page.
Verify that the manage repository page now displays the valid tool dependencies, and that there are no invalid tools shown on the manage page.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
strings_displayed = [ 'freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Valid tools', 'package' ]
strings_not_displayed = [ 'Invalid tools' ]
self.display_manage_repository_page( repository, strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0020'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -9,7 +7,6 @@ emboss_repository_name = 'emboss_0020'
emboss_repository_description = 'Galaxy wrappers for Emboss version 5.0.0 tools for test 0020'
emboss_repository_long_description = 'Galaxy wrappers for Emboss version 5.0.0 tools for test 0020'
class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Testing emboss 5 with repository dependencies.'''
@@ -17,14 +14,14 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_category( self ):
"""Create a category for this test suite"""
@@ -34,7 +31,7 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Create and populate the emboss_datatypes repository.'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( 'Test 0020 Basic Repository Dependencies' )
category = self.test_db_util.get_category_by_name( 'Test 0020 Basic Repository Dependencies' )
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -53,12 +50,12 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
def test_0015_verify_datatypes_in_datatypes_repository( self ):
'''Verify that the emboss_datatypes repository contains datatype entries.'''
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
self.display_manage_repository_page( repository, strings_displayed=[ 'Datatypes', 'equicktandem', 'hennig86', 'vectorstrip' ] )
def test_0020_create_emboss_5_repository_and_upload_files( self ):
'''Create and populate the emboss_5_0020 repository.'''
category = test_db_util.get_category_by_name( 'Test 0020 Basic Repository Dependencies' )
category = self.test_db_util.get_category_by_name( 'Test 0020 Basic Repository Dependencies' )
repository = self.get_or_create_repository( name=emboss_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -77,16 +74,16 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
def test_0025_generate_and_upload_repository_dependencies_xml( self ):
'''Generate and upload the repository_dependencies.xml file'''
repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0020', additional_paths=[ 'emboss', '5' ] )
repository_tuple = ( self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip( datatypes_repository ) )
self.create_repository_dependency( repository=repository, repository_tuples=[ repository_tuple ], filepath=repository_dependencies_path )
def test_0030_verify_emboss_5_dependencies( self ):
'''Verify that the emboss_5 repository now depends on the emboss_datatypes repository with correct name, owner, and changeset revision.'''
repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
changeset_revision = self.get_repository_tip( datatypes_repository )
strings_displayed = [ 'Tool dependencies',
'emboss',
@@ -100,7 +97,7 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
def test_0040_verify_repository_metadata( self ):
'''Verify that resetting the metadata does not change it.'''
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
self.verify_unchanged_repository_metadata( emboss_repository )
self.verify_unchanged_repository_metadata( datatypes_repository )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0030'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -11,7 +9,6 @@ emboss_6_repository_name = 'emboss_6_0030'
emboss_repository_description = 'Galaxy wrappers for Emboss version 5.0.0 tools for test 0030'
emboss_repository_long_description = 'Galaxy wrappers for Emboss version 5.0.0 tools for test 0030'
class TestRepositoryDependencyRevisions( ShedTwillTestCase ):
'''Test dependencies on different revisions of a repository.'''
@@ -19,14 +16,14 @@ class TestRepositoryDependencyRevisions( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_category( self ):
"""Create a category for this test suite"""
@@ -36,7 +33,7 @@ class TestRepositoryDependencyRevisions( ShedTwillTestCase ):
'''Create and populate the emboss_5_0030 repository.'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
category = self.test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
repository = self.get_or_create_repository( name=emboss_5_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -56,7 +53,7 @@ class TestRepositoryDependencyRevisions( ShedTwillTestCase ):
'''Create and populate the emboss_6_0030 repository.'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
category = self.test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
repository = self.get_or_create_repository( name=emboss_6_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -76,7 +73,7 @@ class TestRepositoryDependencyRevisions( ShedTwillTestCase ):
'''Create and populate the emboss_datatypes_0030 repository.'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
category = self.test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -96,7 +93,7 @@ class TestRepositoryDependencyRevisions( ShedTwillTestCase ):
'''Create and populate the emboss_0030 repository.'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
category = self.test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
repository = self.get_or_create_repository( name=emboss_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -114,41 +111,41 @@ class TestRepositoryDependencyRevisions( ShedTwillTestCase ):
def test_0030_generate_repository_dependencies_for_emboss_5( self ):
'''Generate a repository_dependencies.xml file specifying emboss_datatypes and upload it to the emboss_5 repository.'''
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_5_repository = test_db_util.get_repository_by_name_and_owner( emboss_5_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_5_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_5_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0030', additional_paths=[ 'emboss5' ] )
datatypes_tuple = ( self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip( datatypes_repository ) )
self.create_repository_dependency( repository=emboss_5_repository, repository_tuples=[ datatypes_tuple ], filepath=repository_dependencies_path )
def test_0035_generate_repository_dependencies_for_emboss_6( self ):
'''Generate a repository_dependencies.xml file specifying emboss_datatypes and upload it to the emboss_6 repository.'''
emboss_6_repository = test_db_util.get_repository_by_name_and_owner( emboss_6_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_6_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_6_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0030', additional_paths=[ 'emboss6' ] )
datatypes_tuple = ( self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip( datatypes_repository ) )
self.create_repository_dependency( repository=emboss_6_repository, repository_tuples=[ datatypes_tuple ], filepath=repository_dependencies_path )
def test_0040_generate_repository_dependency_on_emboss_5( self ):
'''Create and upload repository_dependencies.xml for the emboss_5_0030 repository.'''
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
emboss_5_repository = test_db_util.get_repository_by_name_and_owner( emboss_5_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
emboss_5_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_5_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0030', additional_paths=[ 'emboss', '5' ] )
emboss_tuple = ( self.url, emboss_5_repository.name, emboss_5_repository.user.username, self.get_repository_tip( emboss_5_repository ) )
self.create_repository_dependency( repository=emboss_repository, repository_tuples=[ emboss_tuple ], filepath=repository_dependencies_path )
def test_0045_generate_repository_dependency_on_emboss_6( self ):
'''Create and upload repository_dependencies.xml for the emboss_6_0030 repository.'''
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
emboss_6_repository = test_db_util.get_repository_by_name_and_owner( emboss_6_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
emboss_6_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_6_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0030', additional_paths=[ 'emboss', '5' ] )
emboss_tuple = ( self.url, emboss_6_repository.name, emboss_6_repository.user.username, self.get_repository_tip( emboss_6_repository ) )
self.create_repository_dependency( repository=emboss_repository, repository_tuples=[ emboss_tuple ], filepath=repository_dependencies_path )
def test_0050_verify_repository_dependency_revisions( self ):
'''Verify that different metadata revisions of the emboss repository have different repository dependencies.'''
repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository_metadata = [ ( metadata.metadata, metadata.changeset_revision ) for metadata in self.get_repository_metadata( repository ) ]
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
datatypes_tip = self.get_repository_tip( datatypes_repository )
strings_displayed = []
# Iterate through all metadata revisions and check for repository dependencies.
@@ -161,9 +158,9 @@ class TestRepositoryDependencyRevisions( ShedTwillTestCase ):
strings_displayed=strings_displayed )
def test_0055_verify_repository_metadata( self ):
'''Verify that resetting the metadata does not change it.'''
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
emboss_5_repository = test_db_util.get_repository_by_name_and_owner( emboss_5_repository_name, common.test_user_1_name )
emboss_6_repository = test_db_util.get_repository_by_name_and_owner( emboss_6_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
emboss_5_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_5_repository_name, common.test_user_1_name )
emboss_6_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_6_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
for repository in [ emboss_repository, emboss_5_repository, emboss_6_repository, datatypes_repository ]:
self.verify_unchanged_repository_metadata( repository )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
freebayes_repository_name = 'freebayes_0040'
freebayes_repository_description = "Galaxy's freebayes tool for test 0040"
freebayes_repository_long_description = "Long description of Galaxy's freebayes tool for test 0040"
@@ -9,7 +7,6 @@ filtering_repository_name = 'filtering_0040'
filtering_repository_description = "Galaxy's filtering tool for test 0040"
filtering_repository_long_description = "Long description of Galaxy's filtering tool for test 0040"
class TestRepositoryCircularDependencies( ShedTwillTestCase ):
'''Verify that the code correctly displays repositories with circular repository dependencies.'''
@@ -17,14 +14,14 @@ class TestRepositoryCircularDependencies( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_category( self ):
"""Create a category for this test suite"""
@@ -76,8 +73,8 @@ class TestRepositoryCircularDependencies( ShedTwillTestCase ):
# Filtering revision 0 -> freebayes revision 0.
# Freebayes revision 0 -> filtering revision 1.
# Filtering will have two revisions, one with just the filtering tool, and one with the filtering tool and a dependency on freebayes.
repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0040', additional_paths=[ 'filtering' ] )
repository_tuple = ( self.url, repository.name, repository.user.username, self.get_repository_tip( repository ) )
self.create_repository_dependency( repository=filtering_repository, repository_tuples=[ repository_tuple ], filepath=repository_dependencies_path )
@@ -88,16 +85,16 @@ class TestRepositoryCircularDependencies( ShedTwillTestCase ):
# Filtering revision 0 -> freebayes revision 0.
# Freebayes revision 0 -> filtering revision 1.
# Filtering will have two revisions, one with just the filtering tool, and one with the filtering tool and a dependency on freebayes.
repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0040', additional_paths=[ 'freebayes' ] )
repository_tuple = ( self.url, repository.name, repository.user.username, self.get_repository_tip( repository ) )
self.create_repository_dependency( repository=freebayes_repository, repository_tuples=[ repository_tuple ], filepath=repository_dependencies_path )
def test_0030_verify_repository_dependencies( self ):
'''Verify that each repository can depend on the other without causing an infinite loop.'''
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
# The dependency structure should look like:
# Filtering revision 0 -> freebayes revision 0.
# Freebayes revision 0 -> filtering revision 1.
@@ -108,14 +105,14 @@ class TestRepositoryCircularDependencies( ShedTwillTestCase ):
def test_0035_verify_repository_metadata( self ):
'''Verify that resetting the metadata does not change it.'''
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
for repository in [ freebayes_repository, filtering_repository ]:
self.verify_unchanged_repository_metadata( repository )
def test_0040_verify_tool_dependencies( self ):
'''Verify that freebayes displays tool dependencies.'''
repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
self.display_manage_repository_page( repository,
strings_displayed=[ 'freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Valid tools', 'package' ],
strings_not_displayed=[ 'Invalid tools' ] )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
emboss_datatypes_repository_name = 'emboss_datatypes_0050'
emboss_datatypes_repository_description = "Datatypes for emboss"
emboss_datatypes_repository_long_description = "Long description of Emboss' datatypes"
@@ -32,7 +30,6 @@ bismark_repository_long_description = "A flexible aligner and methylation caller
category_name = 'Test 0050 Circular Dependencies 5 Levels'
category_description = 'Test circular dependency features'
class TestRepositoryCircularDependenciesToNLevels( ShedTwillTestCase ):
'''Verify that the code correctly handles circular dependencies down to n levels.'''
@@ -40,14 +37,14 @@ class TestRepositoryCircularDependenciesToNLevels( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_convert_repository( self ):
'''Create and populate convert_chars_0050.'''
@@ -187,13 +184,13 @@ class TestRepositoryCircularDependenciesToNLevels( ShedTwillTestCase ):
strings_not_displayed=[] )
def test_0040_create_and_upload_dependency_definitions( self ):
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bismark_repository = test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bismark_repository = self.test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_0050', additional_paths=[ 'freebayes' ] )
# convert_chars depends on column_maker
# column_maker depends on convert_chars
@@ -235,13 +232,13 @@ class TestRepositoryCircularDependenciesToNLevels( ShedTwillTestCase ):
id: 7 key: http://toolshed.local:10001__ESEP__emboss_5__ESEP__test__ESEP__8de5fe0d7b04
['http://toolshed.local:10001', 'emboss_datatypes', 'test', 'dbd4f68bf507']
'''
emboss_datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
bismark_repository = test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
emboss_datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
bismark_repository = self.test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
self.check_repository_dependency( convert_repository, column_repository )
self.check_repository_dependency( column_repository, convert_repository )
self.check_repository_dependency( emboss_datatypes_repository, bismark_repository )
@@ -256,17 +253,17 @@ class TestRepositoryCircularDependenciesToNLevels( ShedTwillTestCase ):
def test_0050_verify_tool_dependencies( self ):
'''Check that freebayes and emboss display tool dependencies.'''
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
self.display_manage_repository_page( freebayes_repository,
strings_displayed=[ 'freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Tool dependencies', 'package' ] )
self.display_manage_repository_page( emboss_repository, strings_displayed=[ 'Tool dependencies', 'emboss', '5.0.0', 'package' ] )
def test_0055_verify_repository_metadata( self ):
'''Verify that resetting the metadata does not change it.'''
emboss_datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
emboss_datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
for repository in [ emboss_datatypes_repository, emboss_repository, freebayes_repository, filtering_repository ]:
self.verify_unchanged_repository_metadata( repository )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'filtering_0060'
repository_description="Galaxy's filtering tool for test 0060"
repository_long_description="Long description of Galaxy's filtering tool for test 0060"
@@ -15,20 +13,21 @@ workflow_repository_name = 'filtering_workflow_0060'
workflow_repository_description="Workflow referencing the filtering tool for test 0060"
workflow_repository_long_description="Long description of the workflow for test 0060"
class TestToolShedWorkflowFeatures( ShedTwillTestCase ):
'''Test valid and invalid workflows.'''
def test_0000_initiate_users( self ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_categories( self ):
"""Create categories for this test suite"""
self.create_category( name='Test 0060 Workflow Features', description='Test 0060 - Workflow Features' )
@@ -45,7 +44,7 @@ class TestToolShedWorkflowFeatures( ShedTwillTestCase ):
strings_displayed=[] )
def test_0015_upload_workflow( self ):
'''Upload a workflow with a missing tool, and verify that the tool specified is marked as missing.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
workflow = file( self.get_filename( 'filtering_workflow/Workflow_for_0060_filter_workflow_repository.ga' ), 'r' ).read()
workflow = workflow.replace( '__TEST_TOOL_SHED_URL__', self.url.replace( 'http://', '' ) )
workflow_filepath = self.generate_temp_path( 'test_0060', additional_paths=[ 'filtering_workflow' ] )
@@ -64,7 +63,7 @@ class TestToolShedWorkflowFeatures( ShedTwillTestCase ):
self.load_workflow_image_in_tool_shed( repository, workflow_name, strings_displayed=[ '#EBBCB2' ] )
def test_0020_upload_tool( self ):
'''Upload the missing tool for the workflow in the previous step, and verify that the error is no longer present.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='filtering/filtering_2.2.0.tar',
filepath=None,
@@ -94,7 +93,7 @@ class TestToolShedWorkflowFeatures( ShedTwillTestCase ):
if not os.path.exists( workflow_filepath ):
os.makedirs( workflow_filepath )
file( os.path.join( workflow_filepath, workflow_filename ), 'w+' ).write( workflow )
repository = test_db_util.get_repository_by_name_and_owner( workflow_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( workflow_repository_name, common.test_user_1_name )
self.upload_file( repository,
filename=workflow_filename,
filepath=workflow_filepath,
@@ -107,11 +106,11 @@ class TestToolShedWorkflowFeatures( ShedTwillTestCase ):
self.load_workflow_image_in_tool_shed( repository, workflow_name, strings_displayed=[ '#EBBCB2' ] )
def test_0030_check_workflow_repository( self ):
"""Check for strings on the manage page for the filtering_workflow_0060 repository."""
repository = test_db_util.get_repository_by_name_and_owner( workflow_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( workflow_repository_name, common.test_user_1_name )
strings_displayed = [ 'Workflows', 'New workflow for 0060_filter', '0.1' ]
strings_not_displayed = [ 'Valid tools', 'Invalid tools' ]
self.display_manage_repository_page( repository, strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed )
def test_0035_verify_repository_metadata( self ):
'''Verify that resetting the metadata does not change it.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.verify_unchanged_repository_metadata( repository )
@@ -1,13 +1,10 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'bismark_0070'
repository_description = "Galaxy's bismark wrapper"
repository_long_description = "Long description of Galaxy's bismark wrapper"
category_name = 'Test 0070 Invalid Tool Revisions'
category_description = 'Tests for a repository with invalid tool revisions.'
class TestBismarkRepository( ShedTwillTestCase ):
'''Testing bismark with valid and invalid tool entries.'''
@@ -15,14 +12,14 @@ class TestBismarkRepository( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_category_and_repository( self ):
"""Create a category for this test suite, then create and populate a bismark repository. It should contain at least one each valid and invalid tool."""
@@ -56,7 +53,7 @@ class TestBismarkRepository( ShedTwillTestCase ):
strings_displayed=[],
strings_not_displayed=[] )
valid_revision = self.get_repository_tip( repository )
test_db_util.refresh( repository )
self.test_db_util.refresh( repository )
tool_guid = '%s/repos/user1/bismark_0070/bismark_methylation_extractor/0.7.7.3' % self.url.replace( 'http://', '' ).rstrip( '/' )
tool_metadata_strings_displayed = [ tool_guid,
'0.7.7.3', # The tool version.
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
column_repository_name = 'column_maker_0080'
column_repository_description = "Add column"
column_repository_long_description = "Compute an expression on every row"
@@ -12,7 +10,6 @@ convert_repository_long_description = "Convert delimiters to tab"
category_name = 'Test 0080 Advanced Circular Dependencies'
category_description = 'Test circular dependency features'
class TestRepositoryCircularDependencies( ShedTwillTestCase ):
'''Verify that the code correctly handles circular dependencies.'''
@@ -20,14 +17,14 @@ class TestRepositoryCircularDependencies( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_column_repository( self ):
"""Create and populate the column_maker repository."""
@@ -75,30 +72,30 @@ class TestRepositoryCircularDependencies( ShedTwillTestCase ):
def test_0020_create_repository_dependencies( self ):
'''Upload a repository_dependencies.xml file that specifies the current revision of convert_chars_0080 to the column_maker_0080 repository.'''
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0080', additional_paths=[ 'convert' ] )
repository_tuple = ( self.url, convert_repository.name, convert_repository.user.username, self.get_repository_tip( convert_repository ) )
self.create_repository_dependency( repository=column_repository, repository_tuples=[ repository_tuple ], filepath=repository_dependencies_path )
def test_0025_create_dependency_on_filtering( self ):
'''Upload a repository_dependencies.xml file that specifies the current revision of filtering to the freebayes_0040 repository.'''
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0080', additional_paths=[ 'convert' ] )
repository_tuple = ( self.url, column_repository.name, column_repository.user.username, self.get_repository_tip( column_repository ) )
self.create_repository_dependency( repository=convert_repository, repository_tuples=[ repository_tuple ], filepath=repository_dependencies_path )
def test_0030_verify_repository_dependencies( self ):
'''Verify that each repository can depend on the other without causing an infinite loop.'''
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
self.check_repository_dependency( convert_repository, column_repository, self.get_repository_tip( column_repository ) )
self.check_repository_dependency( column_repository, convert_repository, self.get_repository_tip( convert_repository ) )
def test_0035_verify_repository_metadata( self ):
'''Verify that resetting the metadata does not change it.'''
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
for repository in [ column_repository, convert_repository ]:
self.verify_unchanged_repository_metadata( repository )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
emboss_datatypes_repository_name = 'emboss_datatypes_0090'
emboss_datatypes_repository_description = "Datatypes for emboss"
emboss_datatypes_repository_long_description = "Long description of Emboss' datatypes"
@@ -28,7 +26,6 @@ bwa_color_repository_long_description = "Color space mapping with BWA"
category_name = 'Test 0090 Tool Search And Installation'
category_description = 'Test 0090 Tool Search And Installation'
class TestRepositoryCircularDependenciesAgain( ShedTwillTestCase ):
'''Test more features related to repository dependencies.'''
@@ -36,14 +33,14 @@ class TestRepositoryCircularDependenciesAgain( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_bwa_base_repository( self ):
'''Create and populate bwa_base_0090.'''
@@ -167,12 +164,12 @@ class TestRepositoryCircularDependenciesAgain( ShedTwillTestCase ):
def test_0035_create_and_upload_dependency_definitions( self ):
'''Create and upload repository dependency definitions.'''
bwa_color_repository = test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bwa_color_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_0090', additional_paths=[ 'freebayes' ] )
freebayes_tuple = ( self.url, freebayes_repository.name, freebayes_repository.user.username, self.get_repository_tip( freebayes_repository ) )
emboss_tuple = ( self.url, emboss_repository.name, emboss_repository.user.username, self.get_repository_tip( emboss_repository ) )
@@ -185,12 +182,12 @@ class TestRepositoryCircularDependenciesAgain( ShedTwillTestCase ):
def test_0040_verify_repository_dependencies( self ):
'''Verify the generated dependency structure.'''
bwa_color_repository = test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
emboss_datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bwa_color_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
emboss_datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
self.check_repository_dependency( emboss_repository, emboss_datatypes_repository )
self.check_repository_dependency( filtering_repository, freebayes_repository )
self.check_repository_dependency( bwa_base_repository, emboss_repository )
@@ -1,5 +1,4 @@
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__ )
@@ -15,7 +14,6 @@ bwa_package_repository_long_description = "BWA repository with a package tool de
category_name = 'Test 0100 Complex Repository Dependencies'
category_description = 'Test 0100 Complex Repository Dependencies'
class TestComplexRepositoryDependencies( ShedTwillTestCase ):
'''Test features related to complex repository dependencies.'''
@@ -23,14 +21,14 @@ class TestComplexRepositoryDependencies( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_bwa_package_repository( self ):
'''Create and populate package_bwa_0_5_9_0100.'''
@@ -84,9 +82,9 @@ class TestComplexRepositoryDependencies( ShedTwillTestCase ):
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex', 'invalid' ] )
xml_filename = self.get_filename( 'tool_dependencies.xml', filepath=dependency_path )
# The repository named bwa_base_repository_0100 is the dependent repository.
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
# The repository named package_bwa_0_5_9_0100 is the required repository.
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
url = 'http://http://this is not an url!'
name = 'package_bwa_0_5_9_0100'
owner = 'user1'
@@ -107,9 +105,9 @@ class TestComplexRepositoryDependencies( ShedTwillTestCase ):
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex', 'invalid' ] )
xml_filename = self.get_filename( 'tool_dependencies.xml', filepath=dependency_path )
# The base_repository named bwa_base_repository_0100 is the dependent repository.
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
# The repository named package_bwa_0_5_9_0100 is the required repository.
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
url = self.url
name = 'invalid_repository!?'
owner = 'user1'
@@ -130,9 +128,9 @@ class TestComplexRepositoryDependencies( ShedTwillTestCase ):
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex', 'invalid' ] )
xml_filename = self.get_filename( 'tool_dependencies.xml', filepath=dependency_path )
# The base_repository named bwa_base_repository_0100 is the dependent repository.
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
# The repository named package_bwa_0_5_9_0100 is the required repository.
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
url = self.url
name = 'package_bwa_0_5_9_0100'
owner = 'invalid_owner!?'
@@ -152,9 +150,9 @@ class TestComplexRepositoryDependencies( ShedTwillTestCase ):
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex', 'invalid' ] )
xml_filename = self.get_filename( 'tool_dependencies.xml', filepath=dependency_path )
# The base_repository named bwa_base_repository_0100 is the dependent repository.
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
# The repository named package_bwa_0_5_9_0100 is the required repository.
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
url = self.url
name = 'package_bwa_0_5_9_0100'
owner = 'user1'
@@ -172,9 +170,9 @@ class TestComplexRepositoryDependencies( ShedTwillTestCase ):
def test_0035_generate_complex_repository_dependency( self ):
'''Generate and upload a valid tool_dependencies.xml file that specifies package_bwa_0_5_9_0100.'''
# The base_repository named bwa_base_repository_0100 is the dependent repository.
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
# The repository named package_bwa_0_5_9_0100 is the required repository.
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex' ] )
url = self.url
name = 'package_bwa_0_5_9_0100'
@@ -193,9 +191,9 @@ class TestComplexRepositoryDependencies( ShedTwillTestCase ):
def test_0040_generate_tool_dependency( self ):
'''Generate and upload a new tool_dependencies.xml file that specifies an arbitrary file on the filesystem, and verify that bwa_base depends on the new changeset revision.'''
# The base_repository named bwa_base_repository_0100 is the dependent repository.
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
# The repository named package_bwa_0_5_9_0100 is the required repository.
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
previous_changeset = self.get_repository_tip( tool_repository )
old_tool_dependency = self.get_filename( os.path.join( 'bwa', 'complex', 'readme', 'tool_dependencies.xml' ) )
new_tool_dependency_path = self.generate_temp_path( 'test_1100', additional_paths=[ 'tool_dependency' ] )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0110'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -12,7 +10,6 @@ emboss_repository_long_description = 'Galaxy wrappers for Emboss version 5.0.0 t
category_name = 'Test 0110 Invalid Repository Dependencies'
category_desc = 'Test 0110 Invalid Repository Dependencies'
class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Testing emboss 5 with repository dependencies.'''
@@ -20,14 +17,14 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_category( self ):
"""Create a category for this test suite"""
@@ -37,7 +34,7 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Create and populate the emboss_datatypes repository.'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -56,12 +53,12 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
def test_0015_verify_datatypes_in_datatypes_repository( self ):
'''Verify that the emboss_datatypes repository contains datatype entries.'''
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
self.display_manage_repository_page( repository, strings_displayed=[ 'Datatypes', 'equicktandem', 'hennig86', 'vectorstrip' ] )
def test_0020_create_emboss_5_repository_and_upload_files( self ):
'''Create and populate the emboss_5_0110 repository.'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=emboss_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -82,8 +79,8 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Generate a repository dependency for emboss 5 with an invalid URL.'''
dependency_path = self.generate_temp_path( 'test_0110', additional_paths=[ 'simple' ] )
xml_filename = self.get_filename( 'repository_dependencies.xml', filepath=dependency_path )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
url = 'http://http://this is not an url!'
name = datatypes_repository.name
owner = datatypes_repository.user.username
@@ -100,8 +97,8 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Generate a repository dependency for emboss 5 with an invalid name.'''
dependency_path = self.generate_temp_path( 'test_0110', additional_paths=[ 'simple' ] )
xml_filename = self.get_filename( 'repository_dependencies.xml', filepath=dependency_path )
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
url = self.url
name = '!?invalid?!'
owner = repository.user.username
@@ -118,8 +115,8 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Generate a repository dependency for emboss 5 with an invalid owner.'''
dependency_path = self.generate_temp_path( 'test_0110', additional_paths=[ 'simple' ] )
xml_filename = self.get_filename( 'repository_dependencies.xml', filepath=dependency_path )
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
url = self.url
name = repository.name
owner = '!?invalid?!'
@@ -136,8 +133,8 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Generate a repository dependency for emboss 5 with an invalid changeset revision.'''
dependency_path = self.generate_temp_path( 'test_0110', additional_paths=[ 'simple', 'invalid' ] )
xml_filename = self.get_filename( 'repository_dependencies.xml', filepath=dependency_path )
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
url = self.url
name = repository.name
owner = repository.user.username
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'blast_datatypes_0120'
datatypes_repository_description = 'Galaxy applicable datatypes for BLAST'
datatypes_repository_long_description = 'Galaxy datatypes for the BLAST top hit descriptons tool'
@@ -23,7 +21,6 @@ Tool shed side:
base_datatypes_count = 0
repository_datatypes_count = 0
class TestRepositoryMultipleOwners( ShedTwillTestCase ):
def test_0000_initiate_users( self ):
@@ -34,19 +31,19 @@ class TestRepositoryMultipleOwners( ShedTwillTestCase ):
"""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_1_email )
test_user_2 = self.test_db_util.get_user( common.test_user_1_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_datatypes_repository( self ):
"""Create and populate the blast_datatypes_0120 repository"""
@@ -83,7 +80,7 @@ class TestRepositoryMultipleOwners( ShedTwillTestCase ):
the datatypes that are defined in datatypes_conf.xml.
'''
global repository_datatypes_count
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
strings_displayed = [ 'BlastXml', 'BlastNucDb', 'BlastProtDb', 'application/xml', 'text/html', 'blastxml', 'blastdbn', 'blastdbp']
self.display_manage_repository_page( repository, strings_displayed=strings_displayed )
repository_datatypes_count = int( self.get_repository_datatypes_count( repository ) )
@@ -121,7 +118,7 @@ class TestRepositoryMultipleOwners( ShedTwillTestCase ):
We are at step 2a.
Check for appropriate strings, such as tool name, description, and version.
'''
repository = test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
strings_displayed = [ 'blastxml_to_top_descr_0120', 'BLAST top hit descriptions', 'Make a table from BLAST XML' ]
strings_displayed.extend( [ '0.0.1', 'Valid tools'] )
self.display_manage_repository_page( repository, strings_displayed=strings_displayed )
@@ -132,8 +129,8 @@ class TestRepositoryMultipleOwners( ShedTwillTestCase ):
We are at step 3.
Create a simple repository dependency for blastxml_to_top_descr_0120 that defines a dependency on blast_datatypes_0120.
'''
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_0120', additional_paths=[ 'dependencies' ] )
datatypes_tuple = ( self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip( datatypes_repository ) )
self.create_repository_dependency( repository=tool_repository, repository_tuples=[ datatypes_tuple ], filepath=dependency_xml_path )
@@ -144,6 +141,6 @@ class TestRepositoryMultipleOwners( ShedTwillTestCase ):
We are at step 3a.
Check the newly created repository dependency to ensure that it was defined and displays correctly.
'''
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
self.check_repository_dependency( tool_repository, datatypes_repository )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'bed_to_gff_0130'
repository_description = "Converter: BED to GFF"
repository_long_description = "Convert bed to gff"
@@ -14,7 +12,6 @@ category_description = 'Test 0130 Datatype Converters'
3) Visit the view tool metadata page and make sure that "Display in tool panel" is False
'''
class TestDatatypeConverters( ShedTwillTestCase ):
'''Test features related to datatype converters.'''
@@ -22,14 +19,14 @@ class TestDatatypeConverters( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_bed_to_gff_repository( self ):
'''Create and populate bed_to_gff_0130.'''
@@ -64,7 +61,7 @@ class TestDatatypeConverters( ShedTwillTestCase ):
We are at step 2 - Visit the manage repository page and make sure there is the appropriate valid tool and datatype.
There should be a 'Convert BED to GFF' tool and a 'galaxy.datatypes.interval:Bed' datatype with extension 'bed'
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
strings_displayed = [ 'Convert BED to GFF', 'galaxy.datatypes.interval:Bed', 'bed', 'Valid tools', 'Datatypes' ]
strings_not_displayed = [ 'Invalid tools' ]
self.display_manage_repository_page( repository, strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed )
@@ -75,7 +72,7 @@ class TestDatatypeConverters( ShedTwillTestCase ):
We are at step 3
Datatype converters that are associated with a datatype should have display in tool panel = False in the tool metadata.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
metadata = self.get_repository_metadata_by_changeset_revision( repository, self.get_repository_tip( repository ) )
tool_metadata_strings_displayed = '<label>Display in tool panel:</label>\n False'
self.check_repository_tools_for_changeset_revision( repository,
@@ -1,5 +1,6 @@
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__)
@@ -20,7 +21,6 @@ src="/repository/static/images/<id>/count_modes.png"
'''
class TestToolHelpImages( ShedTwillTestCase ):
'''Test features related to tool help images.'''
@@ -28,14 +28,14 @@ class TestToolHelpImages( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_htseq_count_repository( self ):
'''Create and populate htseq_count_0140.'''
@@ -73,7 +73,7 @@ class TestToolHelpImages( ShedTwillTestCase ):
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 )
repository = self.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 )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
column_repository_name = 'column_maker_0150'
column_repository_description = "Add column"
column_repository_long_description = "Compute an expression on every row"
@@ -26,7 +24,6 @@ Install column_maker.
Verify that convert_chars was installed first, contrary to the ordering that would be present without prior_installation_required.
'''
class TestSimplePriorInstallation( ShedTwillTestCase ):
'''Test features related to datatype converters.'''
@@ -34,14 +31,14 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_convert_repository( self ):
'''Create and populate convert_chars_0150.'''
@@ -89,8 +86,8 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
Column maker repository dependency:
<repository toolshed="self.url" name="convert_chars" owner="test" changeset_revision="<tip>" prior_installation_required="True" />
'''
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_0150', additional_paths=[ 'column' ] )
convert_tuple = ( self.url, convert_repository.name, convert_repository.user.username, self.get_repository_tip( convert_repository ) )
self.create_repository_dependency( repository=column_repository,
@@ -100,8 +97,8 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
def test_0020_verify_repository_dependency( self ):
'''Verify that the previously generated repositiory dependency displays correctly.'''
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
self.check_repository_dependency( repository=column_repository,
depends_on_repository=convert_repository,
depends_on_changeset_revision=None,
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
filter_repository_name = 'filtering_0160'
filter_repository_description = "Galaxy's filtering tool for test 0160"
filter_repository_long_description = "Long description of Galaxy's filtering tool for test 0160"
@@ -25,7 +23,6 @@ Column maker repository dependency:
Verify display.
'''
class TestSimplePriorInstallation( ShedTwillTestCase ):
'''Test features related to datatype converters.'''
@@ -33,14 +30,14 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_convert_repository( self ):
'''Create and populate convert_chars_0160.'''
@@ -106,9 +103,9 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
'''
Each of the three repositories should depend on the other two, to make this as circular as possible.
'''
filter_repository = test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
filter_repository = self.test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_0160', additional_paths=[ 'column' ] )
filter_revision = self.get_repository_tip( filter_repository )
column_revision = self.get_repository_tip( column_repository )
@@ -131,9 +128,9 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
def test_0025_verify_repository_dependency( self ):
'''Verify that the previously generated repositiory dependency displays correctly.'''
filter_repository = test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
filter_repository = self.test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
self.check_repository_dependency( repository=column_repository,
depends_on_repository=convert_repository,
depends_on_changeset_revision=None,
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
matplotlib_repository_name = 'package_matplotlib_1_2_0170'
matplotlib_repository_description = "Contains a tool dependency definition that downloads and compiles version 1.2.x of the the python matplotlib package."
matplotlib_repository_long_description = "This repository is intended to be defined as a complex repository dependency within a separate repository."
@@ -18,7 +16,6 @@ category_description = 'Test 0170 Prior Installation Complex Dependencies'
3. Verify that package_matplotlib_1_2_0170 now depends on package_numpy_1_7_0170, and that the inherited tool dependency displays correctly.
'''
class TestComplexPriorInstallation( ShedTwillTestCase ):
'''Test features related to datatype converters.'''
@@ -26,14 +23,14 @@ class TestComplexPriorInstallation( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_matplotlib_repository( self ):
'''Create and populate the package_matplotlib_1_2_0170 repository.'''
@@ -91,8 +88,8 @@ class TestComplexPriorInstallation( ShedTwillTestCase ):
set to True. When matplotlib is selected for installation, the result should be that numpy is compiled
and installed first.
'''
numpy_repository = test_db_util.get_repository_by_name_and_owner( numpy_repository_name, common.test_user_1_name )
matplotlib_repository = test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
numpy_repository = self.test_db_util.get_repository_by_name_and_owner( numpy_repository_name, common.test_user_1_name )
matplotlib_repository = self.test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
# Generate the new dependency XML. Normally, the create_repository_dependency method would be used for this, but
# it replaces any existing tool or repository dependency XML file with the generated contents. This is undesirable
# in this case, because matplotlib already has an additional tool dependency definition that we don't want to
@@ -128,8 +125,8 @@ class TestComplexPriorInstallation( ShedTwillTestCase ):
'Inhherited' in this case means that matplotlib should show a package tool dependency on numpy version 1.7, and a repository
dependency on the latest revision of package_numpy_1_7_0170.
'''
numpy_repository = test_db_util.get_repository_by_name_and_owner( numpy_repository_name, common.test_user_1_name )
matplotlib_repository = test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
numpy_repository = self.test_db_util.get_repository_by_name_and_owner( numpy_repository_name, common.test_user_1_name )
matplotlib_repository = self.test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
changeset_revision = self.get_repository_tip( numpy_repository )
self.check_repository_dependency( matplotlib_repository, depends_on_repository=numpy_repository )
self.display_manage_repository_page( matplotlib_repository, strings_displayed=[ 'numpy', '1.7', 'package', changeset_revision ] )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0020'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -41,6 +39,7 @@ category_0050_description = 'Test circular dependency features'
running_standalone = False
class TestResetAllRepositoryMetadata( ShedTwillTestCase ):
'''Verify that the "Reset selected metadata" feature works.'''
@@ -48,14 +47,14 @@ class TestResetAllRepositoryMetadata( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_filtering_repository( self ):
'''Create and populate the filtering_0000 repository.'''
@@ -298,10 +297,10 @@ class TestResetAllRepositoryMetadata( ShedTwillTestCase ):
'''Create the dependency structure for test 0030.'''
global running_standalone
if running_standalone:
datatypes_repository = test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0030', common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( 'emboss_0030', common.test_user_1_name )
emboss_5_repository = test_db_util.get_repository_by_name_and_owner( 'emboss_5_0030', common.test_user_1_name )
emboss_6_repository = test_db_util.get_repository_by_name_and_owner( 'emboss_6_0030', common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0030', common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( 'emboss_0030', common.test_user_1_name )
emboss_5_repository = self.test_db_util.get_repository_by_name_and_owner( 'emboss_5_0030', common.test_user_1_name )
emboss_6_repository = self.test_db_util.get_repository_by_name_and_owner( 'emboss_6_0030', common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0330', additional_paths=[ 'emboss' ] )
datatypes_tuple = ( self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip( datatypes_repository ) )
emboss_5_tuple = ( self.url, emboss_5_repository.name, emboss_5_repository.user.username, self.get_repository_tip( emboss_5_repository ) )
@@ -365,8 +364,8 @@ class TestResetAllRepositoryMetadata( ShedTwillTestCase ):
'''Create the dependency structure for test 0040.'''
global running_standalone
if running_standalone:
freebayes_repository = test_db_util.get_repository_by_name_and_owner( 'freebayes_0040', common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( 'filtering_0040', common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( 'freebayes_0040', common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( 'filtering_0040', common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0340', additional_paths=[ 'dependencies' ] )
freebayes_tuple = ( self.url, freebayes_repository.name, freebayes_repository.user.username, self.get_repository_tip( freebayes_repository ) )
filtering_tuple = ( self.url, filtering_repository.name, filtering_repository.user.username, self.get_repository_tip( filtering_repository ) )
@@ -554,13 +553,13 @@ class TestResetAllRepositoryMetadata( ShedTwillTestCase ):
if running_standalone:
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bismark_repository = test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bismark_repository = self.test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_0050', additional_paths=[ 'freebayes' ] )
# convert_chars depends on column_maker
# column_maker depends on convert_chars
@@ -629,7 +628,7 @@ class TestResetAllRepositoryMetadata( ShedTwillTestCase ):
self.login( email=common.admin_email, username=common.admin_username )
old_metadata = dict()
new_metadata = dict()
repositories = test_db_util.get_all_repositories()
repositories = self.test_db_util.get_all_repositories()
for repository in repositories:
old_metadata[ self.security.encode_id( repository.id ) ] = dict()
for metadata in self.get_repository_metadata( repository ):
@@ -1,5 +1,6 @@
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__ )
@@ -22,7 +23,6 @@ clone_path = None
5. Verify that the changesets have been applied.
'''
class TestHgWebFeatures( ShedTwillTestCase ):
'''Test http mercurial interface.'''
@@ -30,19 +30,19 @@ class TestHgWebFeatures( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_filtering_repository( self ):
'''Create and populate the filtering_0310 repository.'''
@@ -98,7 +98,7 @@ class TestHgWebFeatures( ShedTwillTestCase ):
We will be prepending a comment to filtering.py.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
clone_path = self.generate_temp_path( 'test_0310', additional_paths=[ 'filtering_0310', 'user2' ] )
self.clone_repository( repository, clone_path )
hgrepo = self.get_hg_repo( clone_path )
@@ -133,7 +133,7 @@ class TestHgWebFeatures( ShedTwillTestCase ):
We will be prepending a second comment to filtering.py.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
clone_path = self.generate_temp_path( 'test_0310', additional_paths=[ 'filtering_0310', 'user1' ] )
self.clone_repository( repository, clone_path )
hgrepo = self.get_hg_repo( clone_path )
@@ -161,7 +161,7 @@ class TestHgWebFeatures( ShedTwillTestCase ):
The commit from test_user_2 should not be present in the changelog, since the repositories were cloned to separate locations.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
strings_displayed = [ 'Uploaded filtering 1.1.0.', 'Uploaded filtering test data.',
'Added another line to filtering.py.' ]
strings_not_displayed = [ 'Added a line to filtering.py' ]
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'filtering_0400'
repository_description = 'Galaxy filtering tool for test 0400'
repository_long_description = 'Long description of Galaxy filtering tool for test 0400'
@@ -35,6 +33,7 @@ repository_long_description = 'Long description of Galaxy filtering tool for tes
27. Verify that the functional tests component review displays correctly.
'''
class TestRepositoryComponentReviews( ShedTwillTestCase ):
'''Test repository component review features.'''
def test_0000_initiate_users( self ):
@@ -46,19 +45,19 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_grant_reviewer_role( self ):
'''Grant the repository reviewer role to test_user_2.'''
"""
@@ -66,8 +65,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
We now have an admin user (admin_user) and two non-admin users (test_user_1 and test_user_2). Grant the repository
reviewer role to test_user_2, who will not be the owner of the reviewed repositories.
"""
reviewer_role = test_db_util.get_role_by_name( 'Repository Reviewer' )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
reviewer_role = self.test_db_util.get_role_by_name( 'Repository Reviewer' )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
self.grant_role_to_user( test_user_2, reviewer_role )
def test_0010_verify_repository_review_components( self ):
'''Ensure that the required review components exist.'''
@@ -119,7 +118,7 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
# The create_repository_review method takes a dict( component label=review contents ).
# If review_contents is empty, it marks that component as not applicable. The review
# contents dict should have the structure:
@@ -139,8 +138,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed = [ 'Data types', 'not_applicable' ]
strings_not_displayed = [ 'Functional tests', 'README', 'Repository dependencies', 'Tool dependencies', 'Tools', 'Workflows' ]
self.verify_repository_reviews( repository, reviewer=user, strings_displayed=strings_displayed )
@@ -156,8 +155,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
# The create_repository_review method takes a dict( component label=review contents ).
# If review_contents is empty, it marks that component as not applicable. The review
# contents dict should have the structure:
@@ -184,8 +183,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed=[ 'Functional tests', 'Functional tests missing', 'no' ]
strings_not_displayed = [ 'README', 'Repository dependencies', 'Tool dependencies', 'Tools', 'Workflows' ]
self.verify_repository_reviews( repository, reviewer=user, strings_displayed=strings_displayed )
@@ -201,8 +200,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
# The create_repository_review method takes a dict( component label=review contents ).
# If review_contents is empty, it marks that component as not applicable. The review
# contents dict should have the structure:
@@ -222,8 +221,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed=[ 'README', 'not_applicable' ]
strings_not_displayed = [ 'Repository dependencies', 'Tool dependencies', 'Tools', 'Workflows' ]
self.verify_repository_reviews( repository, reviewer=user, strings_displayed=strings_displayed )
@@ -240,8 +239,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
# The create_repository_review method takes a dict( component label=review contents ).
# If review_contents is empty, it marks that component as not applicable. The review
# contents dict should have the structure:
@@ -262,8 +261,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed=[ 'Repository dependencies', 'not_applicable' ]
strings_not_displayed = [ 'Tool dependencies', 'Tools', 'Workflows' ]
self.verify_repository_reviews( repository, reviewer=user, strings_displayed=strings_displayed )
@@ -281,8 +280,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
# The create_repository_review method takes a dict( component label=review contents ).
# If review_contents is empty, it marks that component as not applicable. The review
# contents dict should have the structure:
@@ -303,8 +302,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed=[ 'Tool dependencies', 'not_applicable' ]
strings_not_displayed = [ 'Tools', 'Workflows' ]
self.verify_repository_reviews( repository, reviewer=user, strings_displayed=strings_displayed )
@@ -324,8 +323,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
# The create_repository_review method takes a dict( component label=review contents ).
# If review_contents is empty, it marks that component as not applicable. The review
# contents dict should have the structure:
@@ -336,7 +335,7 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
# private: yes/no
# }
review_contents_dict = { 'Tools': dict( rating=5, comment='Excellent tool, easy to use.', approved='yes', private='no' ) }
self.review_repository( repository, review_contents_dict, test_db_util.get_user( common.test_user_2_email ) )
self.review_repository( repository, review_contents_dict, self.test_db_util.get_user( common.test_user_2_email ) )
def test_0075_verify_tools_review( self ):
'''Verify that the tools component review displays correctly.'''
"""
@@ -346,8 +345,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed=[ 'Tools', 'yes', 'Excellent tool, easy to use.' ]
strings_not_displayed = [ 'Workflows' ]
self.verify_repository_reviews( repository, reviewer=user, strings_displayed=strings_displayed )
@@ -367,8 +366,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
# The create_repository_review method takes a dict( component label=review contents ).
# If review_contents is empty, it marks that component as not applicable. The review
# contents dict should have the structure:
@@ -389,8 +388,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed=[ 'Workflows', 'not_applicable' ]
self.verify_repository_reviews( repository, reviewer=user, strings_displayed=strings_displayed )
def test_0090_upload_readme_file( self ):
@@ -402,8 +401,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
self.upload_file( repository,
filename='readme.txt',
filepath=None,
@@ -424,8 +423,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
# Get the last changeset revision that has a review associated with it.
last_review = self.get_last_reviewed_revision_by_user( user, repository )
if last_review is None:
@@ -453,8 +452,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed = [ 'README', 'yes', 'Clear and concise readme file, a true pleasure to read.' ]
self.verify_repository_reviews( repository, reviewer=user, strings_displayed=strings_displayed )
def test_0105_upload_test_data( self ):
@@ -466,8 +465,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
the last dowloadable revision, but the last repository review will still be associated with the
last dowloadable revision hash.
"""
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
self.upload_file( repository,
filename='filtering/filtering_test_data.tar',
filepath=None,
@@ -487,8 +486,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
# Get the changeset immediately prior to the tip, and pass it to the create review method.
last_review = self.get_last_reviewed_revision_by_user( user, repository )
# The create_repository_review method takes a dict( component label=review contents ).
@@ -514,8 +513,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed=[ 'Functional tests', 'yes', 'A good set of functional tests.' ]
self.verify_repository_reviews( repository, reviewer=user, strings_displayed=strings_displayed )
def test_0120_upload_new_tool_version( self ):
@@ -527,8 +526,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
self.upload_file( repository,
filename='filtering/filtering_2.2.0.tar',
filepath=None,
@@ -547,8 +546,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
last_review = self.get_last_reviewed_revision_by_user( user, repository )
# Something needs to change so that the review will save.
# The create_repository_review method takes a dict( component label=review contents ).
@@ -574,8 +573,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed = [ 'Data types', 'Functional tests', 'yes', 'A good set of functional tests.', 'README', 'yes', 'Workflows', 'Tools' ]
strings_displayed.extend( [ 'Clear and concise readme file, a true pleasure to read.', 'Tool dependencies', 'not_applicable' ] )
strings_displayed.extend( [ 'Repository dependencies', 'Version 2.2.0 does the impossible and improves this tool.' ] )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'filtering_0410'
repository_description = 'Galaxy filtering tool for test 0410'
repository_long_description = 'Long description of Galaxy filtering tool for test 0410'
@@ -15,6 +13,7 @@ repository_long_description = 'Long description of Galaxy filtering tool for tes
7. Have test_user_3 browse the review.
'''
class TestRepositoryComponentReviews( ShedTwillTestCase ):
'''Test repository component review features.'''
def test_0000_initiate_users( self ):
@@ -25,32 +24,32 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
"""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
self.logout()
self.login( email=common.test_user_3_email, username=common.test_user_3_name )
test_user_3 = test_db_util.get_user( common.test_user_3_email )
test_user_3 = self.test_db_util.get_user( common.test_user_3_email )
assert test_user_3 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_3_email
test_user_3_private_role = test_db_util.get_private_role( test_user_3 )
test_user_3_private_role = self.test_db_util.get_private_role( test_user_3 )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_grant_reviewer_role( self ):
'''Grant the repository reviewer role to test_user_2.'''
"""
We now have an admin user (admin_user) and three non-admin users (test_user_1, test_user_2, and test_user_3). Grant the repository
reviewer role to test_user_2, who will not be the owner of the reviewed repositories, and do not grant any roles to test_user_3 yet.
"""
reviewer_role = test_db_util.get_role_by_name( 'Repository Reviewer' )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
reviewer_role = self.test_db_util.get_role_by_name( 'Repository Reviewer' )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
self.grant_role_to_user( test_user_2, reviewer_role )
def test_0010_verify_repository_review_components( self ):
'''Ensure that the required review components exist.'''
@@ -114,8 +113,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
'''
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
review_contents_dict = {
'Data types': dict(),
'README': dict( rating=5, comment='Clear and concise readme file, a true pleasure to read.', approved='yes', private='no' ),
@@ -134,8 +133,8 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed = [ 'Data types', 'Functional tests', 'yes', 'A good set of functional tests.', 'README', 'yes', 'Workflows', 'Tools' ]
strings_displayed.extend( [ 'Clear and concise readme file, a true pleasure to read.', 'Tool dependencies', 'not_applicable' ] )
strings_displayed.extend( [ 'Repository dependencies', 'Excellent tool, easy to use.' ] )
@@ -149,14 +148,14 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
'''
self.logout()
self.login( email=common.test_user_3_email, username=common.test_user_3_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_not_displayed = [ 'Browse reviews of this repository' ]
self.display_manage_repository_page( repository, strings_not_displayed=strings_not_displayed )
strings_not_displayed = [ 'A good set of functional tests.', 'Clear and concise readme file, a true pleasure to read.' ]
strings_not_displayed.append( 'Excellent tool, easy to use.' )
changeset_revision = self.get_repository_tip( repository )
review = test_db_util.get_repository_review_by_user_id_changeset_revision( user.id, repository.id, changeset_revision )
review = self.test_db_util.get_repository_review_by_user_id_changeset_revision( user.id, repository.id, changeset_revision )
self.browse_component_review( review, strings_not_displayed=strings_not_displayed )
def test_0035_grant_write_access_to_other_user( self ):
'''Grant write access on the filtering_0410 repository to test_user_3.'''
@@ -165,7 +164,7 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.grant_write_access( repository, usernames=[ common.test_user_3_name ] )
def test_0040_verify_test_user_3_can_browse_reviews( self ):
'''Check that test_user_3 can now browse reviews.'''
@@ -174,7 +173,7 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
'''
self.logout()
self.login( email=common.test_user_3_email, username=common.test_user_3_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
strings_displayed = [ 'Browse reviews of this repository' ]
self.display_manage_repository_page( repository, strings_displayed=strings_displayed )
def test_0045_verify_browse_review_with_write_access( self ):
@@ -184,13 +183,13 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
'''
self.logout()
self.login( email=common.test_user_3_email, username=common.test_user_3_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = test_db_util.get_user( common.test_user_2_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
user = self.test_db_util.get_user( common.test_user_2_email )
strings_displayed = [ 'A&nbsp;good&nbsp;set&nbsp;of&nbsp;functional&nbsp;tests.',
'Clear&nbsp;and&nbsp;concise&nbsp;readme&nbsp;file',
'a&nbsp;true&nbsp;pleasure&nbsp;to&nbsp;read.',
'Excellent&nbsp;tool,&nbsp;easy&nbsp;to&nbsp;use.' ]
changeset_revision = self.get_repository_tip( repository )
review = test_db_util.get_repository_review_by_user_id_changeset_revision( user.id, repository.id, changeset_revision )
review = self.test_db_util.get_repository_review_by_user_id_changeset_revision( user.id, repository.id, changeset_revision )
self.browse_component_review( review, strings_displayed=strings_displayed )
@@ -1,5 +1,6 @@
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__)
@@ -22,6 +23,7 @@ first_changeset_hash = ''
8. Visit the following url and check for appropriate strings: <tool shed base url>/view/<invalid owner>
'''
class TestRepositoryCitableURLs( ShedTwillTestCase ):
'''Test repository citable url features.'''
def test_0000_initiate_users( self ):
@@ -32,14 +34,14 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
"""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_repository( self ):
"""Create and populate the filtering_0420 repository"""
"""
@@ -77,7 +79,7 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
Add valid change set revision 1.
The repository should now contain two changeset revisions, 0:<revision hash> and 1:<revision hash>.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='readme.txt',
filepath=None,
@@ -93,8 +95,8 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
We are at step 3.
Visit the following url and check for appropriate strings: <tool shed base url>/view/user1
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = test_db_util.get_user( common.test_user_1_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = self.test_db_util.get_user( common.test_user_1_email )
encoded_user_id = self.security.encode_id( test_user_1.id )
# Since twill does not load the contents of an iframe, we need to check that the iframe has been generated correctly,
# then directly load the url that the iframe should be loading and check for the expected strings.
@@ -117,8 +119,8 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
Visit the following url and check for strings: <tool shed base url>/view/user1/filtering_0420
Resulting page should contain change set revision 1
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = test_db_util.get_user( common.test_user_1_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = self.test_db_util.get_user( common.test_user_1_email )
encoded_user_id = self.security.encode_id( test_user_1.id )
encoded_repository_id = self.security.encode_id( repository.id )
# Since twill does not load the contents of an iframe, we need to check that the iframe has been generated correctly,
@@ -144,8 +146,8 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
Resulting page should not contain change set revision 1, but should contain change set revision 0.
'''
global first_changeset_hash
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = test_db_util.get_user( common.test_user_1_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = self.test_db_util.get_user( common.test_user_1_email )
encoded_user_id = self.security.encode_id( test_user_1.id )
encoded_repository_id = self.security.encode_id( repository.id )
# Since twill does not load the contents of an iframe, we need to check that the iframe has been generated correctly,
@@ -166,8 +168,8 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
strings_not_displayed_in_iframe=strings_not_displayed_in_iframe )
def test_0030_load_sharable_url_with_invalid_changeset_revision( self ):
'''Load a citable url with an invalid changeset revision specified.'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = test_db_util.get_user( common.test_user_1_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = self.test_db_util.get_user( common.test_user_1_email )
encoded_user_id = self.security.encode_id( test_user_1.id )
encoded_repository_id = self.security.encode_id( repository.id )
invalid_changeset_hash = 'invalid'
@@ -195,8 +197,8 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
We are at step 7
Visit the following url and check for appropriate strings: <tool shed base url>/view/user1/!!invalid!!
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = test_db_util.get_user( common.test_user_1_email )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
test_user_1 = self.test_db_util.get_user( common.test_user_1_email )
encoded_user_id = self.security.encode_id( test_user_1.id )
tip_revision = self.get_repository_tip( repository )
# Since twill does not load the contents of an iframe, we need to check that the iframe has been generated correctly,
@@ -1,5 +1,6 @@
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__ )
@@ -15,8 +16,6 @@ emboss_repository_long_description = 'Long description of EMBOSS tools for test
freebayes_repository_name = 'freebayes_0430'
freebayes_repository_description = 'Freebayes tool for test 0430'
freebayes_repository_long_description = 'Long description of Freebayes tool for test 0430'
'''
1. Create and populate repositories.
2. Browse Custom Datatypes.
@@ -25,7 +24,6 @@ freebayes_repository_long_description = 'Long description of Freebayes tool for
5. Browse Tool Dependencies.
'''
class TestToolShedBrowseUtilities( ShedTwillTestCase ):
'''Test browsing for Galaxy utilities.'''
@@ -37,14 +35,14 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ):
"""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_datatypes_repository( self ):
"""Create and populate the emboss_datatypes_0430 repository"""
@@ -104,8 +102,8 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ):
def test_0015_create_dependency_on_datatypes_repository( self ):
'''Create a dependency definition file that specifies emboss_datatypes_0430 and upload it to emboss_0430.'''
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_0430', additional_paths=[ 'dependencies' ] )
datatypes_tuple = ( self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip( datatypes_repository ) )
self.create_repository_dependency( repository=emboss_repository, repository_tuples=[ datatypes_tuple ], filepath=dependency_xml_path )
@@ -145,7 +143,7 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ):
We are at step 2.
Verify that the uploaded emboss datatypes repository has added to the custom datatypes page.
'''
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
changeset_revision = self.get_repository_tip( repository )
strings_displayed = [ 'equicktandem', 'est2genome', 'supermatcher', 'galaxy.datatypes.data:Text', changeset_revision, 'user1', 'emboss_datatypes_0430' ]
self.browse_custom_datatypes( strings_displayed=strings_displayed )
@@ -156,7 +154,7 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ):
We are at step 3.
Verify the existence of emboss tools in the browse tools page.
'''
repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
changeset_revision = self.get_repository_tip( repository )
strings_displayed = [ 'EMBOSS', 'antigenic1', '5.0.0', changeset_revision, 'user1', 'emboss_0430' ]
self.browse_tools( strings_displayed=strings_displayed )
@@ -167,8 +165,8 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ):
We are at step 3.
Verify that the browse repository dependencies page shows emboss_datatypes_0430 as a dependency of emboss_0430.
'''
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
datatypes_changeset_revision = self.get_repository_tip( datatypes_repository )
emboss_changeset_revision = self.get_repository_tip( emboss_repository )
strings_displayed = [ datatypes_changeset_revision, emboss_changeset_revision, 'emboss_datatypes_0430', 'user1', 'emboss_0430' ]
@@ -180,7 +178,7 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ):
We are at step 4.
Verify that the browse tool dependencies page shows the correct dependencies defined for freebayes_0430.
'''
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
freebayes_changeset_revision = self.get_repository_tip( freebayes_repository )
strings_displayed = [ freebayes_changeset_revision, 'freebayes_0430', 'user1', '0.9.4_9696d0ce8a96', 'freebayes', 'samtools', '0.1.18' ]
self.browse_tool_dependencies( strings_displayed=strings_displayed )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
column_repository_name = 'column_maker_0440'
column_repository_description = "Add column"
column_repository_long_description = "Compute an expression on every row"
@@ -44,7 +42,6 @@ Tool dependencies:
still has a single installable revision 0.
'''
class TestDeletedDependencies( ShedTwillTestCase ):
'''Test metadata setting when dependency definitions are deleted.'''
@@ -56,14 +53,14 @@ class TestDeletedDependencies( ShedTwillTestCase ):
"""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_column_maker_repository( self ):
'''Create and populate a repository named column_maker_0440.'''
@@ -96,7 +93,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
'''
We are at simple repository dependencies, step 2 - Create and populate convert_chars_0440 so that it has an installable revision 0.
'''
category = test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' )
category = self.test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ "Repository <b>convert_chars_0440</b> has been created" ]
@@ -122,8 +119,8 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at simple repository dependencies, step 3 - Add a valid simple repository_dependencies.xml to
convert_chars_0440 that points to the installable revision of column_maker_0440.
'''
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_0440', additional_paths=[ 'dependencies' ] )
column_tuple = ( self.url, column_repository.name, column_repository.user.username, self.get_repository_tip( column_repository ) )
# After this, convert_chars_0440 should depend on column_maker_0440.
@@ -139,7 +136,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at simple repository dependencies, step 4 - Make sure the installable revision of convert_chars_0440 is now
revision 1 (the tip) instead of revision 0.
'''
repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
tip = self.get_repository_tip( repository )
metadata_record = self.get_repository_metadata_by_changeset_revision( repository, tip )
# Make sure that the new tip is now downloadable, and that there are no other downloadable revisions.
@@ -153,7 +150,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at simple repository dependencies, steps 5 and 6 - Delete repository_dependencies.xml from convert_chars_0440.
Make sure convert_chars_0440 now has two installable revisions: 1 and 2
'''
repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
# Record the current tip, so we can verify that it's still a downloadable revision after repository_dependencies.xml
# is deleted and a new downloadable revision is created.
old_changeset_revision = self.get_repository_tip( repository )
@@ -168,7 +165,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
assert metadata_record.downloadable, 'The revision of %s that does not contain repository_dependencies.xml is not downloadable.' % \
repository.name
# Explicitly reload the repository instance from the database, to avoid potential caching issues.
test_db_util.refresh( repository )
self.test_db_util.refresh( repository )
# Verify that there are only two downloadable revisions.
assert len( repository.downloadable_revisions ) == 2, 'Repository %s has %d downloadable revisions, expected 2.' % \
( repository.name, len( repository.downloadable_revisions ) )
@@ -179,7 +176,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at complex repository dependencies, step 1 - Create and populate bwa_package_0440 so that it has a valid
tool dependency definition and an installable revision 0.
'''
category = test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' )
category = self.test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ "Repository <b>bwa_package_0440</b> has been created" ]
@@ -205,7 +202,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at complex repository dependencies, step 2 - Create and populate bwa_base_0440 so that it has an installable revision 0.
This repository should contain a tool with a defined dependency that will be satisfied by the tool dependency defined in bwa_package_0440.
'''
category = test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' )
category = self.test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ "Repository <b>bwa_base_0440</b> has been created" ]
@@ -231,8 +228,8 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at complex repository dependencies, step 3 - Add a valid complex repository dependency tool_dependencies.xml to
bwa_base_0440 that points to the installable revision 0 of bwa_package_0440.
'''
bwa_package_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
bwa_base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
bwa_package_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
bwa_base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
dependency_path = self.generate_temp_path( 'test_0440', additional_paths=[ 'complex' ] )
changeset_revision = self.get_repository_tip( bwa_package_repository )
bwa_tuple = ( self.url, bwa_package_repository.name, bwa_package_repository.user.username, changeset_revision )
@@ -250,7 +247,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at complex repository dependencies, step 4 - Make sure that bwa_base_0440 installable revision is now revision 1
instead of revision 0.
'''
repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tip = self.get_repository_tip( repository )
metadata_record = self.get_repository_metadata_by_changeset_revision( repository, tip )
# Make sure that the new tip is now downloadable, and that there are no other downloadable revisions.
@@ -264,7 +261,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at complex repository dependencies, step 5 - Delete tool_dependencies.xml from bwa_base_0440,
and make sure bwa_base_0440 now has two installable revisions: 1 and 2
'''
repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
# Record the current tip, so we can verify that it's still a downloadable revision after tool_dependencies.xml
# is deleted and a new downloadable revision is created.
old_changeset_revision = self.get_repository_tip( repository )
@@ -288,7 +285,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at tool dependencies, step 1 - Create and populate bwa_tool_dependency_0440 so that it has a valid tool
dependency definition and an installable revision 0.
'''
category = test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' )
category = self.test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ "Repository <b>bwa_tool_dependency_0440</b> has been created" ]
@@ -314,7 +311,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at tool dependencies, step 2 - Delete tool_dependencies.xml from bwa_tool_dependency_0440.
Make sure bwa_tool_dependency_0440 still has a downloadable changeset revision at the old tip.
'''
repository = test_db_util.get_repository_by_name_and_owner( bwa_tool_dependency_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( bwa_tool_dependency_repository_name, common.test_user_1_name )
# Record the current tip, so we can verify that it's still a downloadable revision after repository_dependencies.xml
# is deleted and a new downloadable revision is created.
old_changeset_revision = self.get_repository_tip( repository )
@@ -338,7 +335,7 @@ class TestDeletedDependencies( ShedTwillTestCase ):
We are at tool dependencies, step 3 - Add the same tool_dependencies.xml file to bwa_tool_dependency_0440, and make sure
that bwa_tool_dependency_0440 still has a single installable revision 0.
'''
repository = test_db_util.get_repository_by_name_and_owner( bwa_tool_dependency_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( bwa_tool_dependency_repository_name, common.test_user_1_name )
# Record the current tip, so we can verify that it's still not a downloadable revision after tool_dependencies.xml
# is re-uploaded and a new downloadable revision is created.
old_changeset_revision = self.get_repository_tip( repository )
@@ -1,5 +1,4 @@
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__ )
@@ -45,6 +44,7 @@ first_metadata_revision = None
14) Uncheck the checkbox for the second revision, and verify that the skip reason is no longer displayed.
'''
class TestSkipToolTestFeature( ShedTwillTestCase ):
'''Test core repository features.'''
@@ -52,19 +52,19 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_repository( self ):
'''Create and populate the filtering repository'''
@@ -74,7 +74,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
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 )
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
'Repository %s has been created' % "<b>%s</b>" % repository_name ]
repository = self.get_or_create_repository( name=repository_name,
@@ -99,7 +99,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
This is step 2 - Visit the Manage repository page and check the "Skip tool tests for this revision" checkbox and
enter some text in the reason.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.set_skip_tool_tsts_flag( repository=repository, flag_value=True, reason='Skip reason for first revision.' )
self.display_manage_repository_page( repository, strings_displayed=[ 'Skip reason for first revision.' ] )
@@ -111,7 +111,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
metadata revision.
'''
global first_metadata_revision
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='filtering/readme.txt',
filepath=None,
@@ -129,7 +129,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
This is step 4 - Visit the Manage repository page again, the checked "Skip tool tests" checkbox and
the reason should still be displayed since it should now be associated with this metadata revision.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.display_manage_repository_page( repository, strings_displayed=[ 'Skip reason for first revision.' ] )
self.load_checkable_revisions( strings_not_displayed=[ self.get_repository_tip( repository ) ] )
@@ -139,7 +139,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
This is step 5 - Upload a new version of the tool to the repository so that a new metadata changeset
revision is created (there should now be 3 revisions with 2 of them having associated metadata).
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='filtering/filtering_2.2.0.tar',
filepath=None,
@@ -156,7 +156,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
This is step 6 - Visit the Manage repository page for the tip revision - the Skip tools tests checkbox
should not be checked and the reason should be empty.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.load_checkable_revisions( strings_displayed=[ self.get_repository_tip( repository ) ] )
self.display_manage_repository_page( repository, strings_not_displayed=[ 'Skip reason for first revision.' ] )
@@ -167,7 +167,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
file in it). The Skip tool tests checkbox should still be checked and the reason should be there.
'''
global first_metadata_revision
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.load_checkable_revisions( strings_not_displayed=[ first_metadata_revision ] )
self.display_manage_repository_page( repository,
changeset_revision=first_metadata_revision,
@@ -178,7 +178,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
'''
This is step 8 - Set the skip setting on the new metadata revision.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.set_skip_tool_tsts_flag( repository=repository, flag_value=True, reason='Skip reason for second revision.' )
self.load_checkable_revisions( strings_not_displayed=[ self.get_repository_tip( repository ) ] )
self.display_manage_repository_page( repository, strings_displayed=[ 'Skip reason for second revision.' ] )
@@ -190,7 +190,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
upward in the changelog. This should result in the skip_tool_tests setting being applied to the updated
metadata revision.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='filtering/README',
filepath=None,
@@ -210,7 +210,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
This is step 10 - Check the first revision, make sure the skip reason matches.
'''
global first_metadata_revision
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.display_manage_repository_page( repository,
changeset_revision=first_metadata_revision,
strings_displayed=[ 'Skip reason for first revision.' ],
@@ -221,7 +221,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
'''
This is step 12 - Check the second revision, make sure the skip reason matches.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.display_manage_repository_page( repository,
strings_displayed=[ 'Skip reason for second revision.' ],
strings_not_displayed=[ 'Skip reason for first revision.' ] )
@@ -232,7 +232,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
This is step 13 - Uncheck the checkbox for the first revision, and verify that the skip reason is no longer displayed.
'''
global first_metadata_revision
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.set_skip_tool_tsts_flag( repository=repository, flag_value=False, reason='', changeset_revision=first_metadata_revision )
self.display_manage_repository_page( repository,
changeset_revision=first_metadata_revision,
@@ -244,7 +244,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
'''
This is step 14 - Uncheck the checkbox for the second revision, and verify that the skip reason is no longer displayed.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.set_skip_tool_tsts_flag( repository=repository, flag_value=False, reason='' )
self.display_manage_repository_page( repository,
strings_not_displayed=[ 'Skip reason for second revision.', 'Skip reason for first revision.' ] )
@@ -1,5 +1,4 @@
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__ )
@@ -53,6 +52,7 @@ For all steps, verify that the generated dependency points to the tip of the spe
16) Upload to repository_dependency_test_5_0460 using the url hg://<tool shed url>/repos/user1/hg_repository_dependency_0460.
'''
class TestAutomaticDependencyRevision( ShedTwillTestCase ):
'''Test defining repository dependencies without specifying the changeset revision.'''
@@ -60,19 +60,19 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_datatypes_repository( self ):
'''Create and populate the emboss_datatypes_0460 repository'''
@@ -82,7 +82,7 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
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 )
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -104,7 +104,7 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
'''
This is step 2 - Create and populate package_bwa_0_5_9_0460.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=bwa_repository_name,
description=bwa_repository_description,
long_description=bwa_repository_long_description,
@@ -134,7 +134,7 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
- Upload via url, with the tool_dependencies.xml in the root of another repository.
- Upload via url, with the tool_dependencies.xml in a subfolder within another repository.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository_base_name = 'complex_dependency_test_%d_0460'
repository_base_description = 'Test #%d for complex repository dependency definitions.'
repository_base_long_description = 'Test #%d for complex repository dependency definitions.'
@@ -152,8 +152,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
This is step 4 - Upload an uncompressed tool_dependencies.xml to complex_dependency_test_1_0460 that specifies
a complex repository dependency on package_bwa_0_5_9_0460 without a specified changeset revision or tool shed url.
'''
repository = test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_1_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_1_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
self.upload_file( repository,
filename='0460_files/tool_dependencies.xml',
filepath=None,
@@ -174,8 +174,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
This is step 5 - Upload an tarball with tool_dependencies.xml to complex_dependency_test_2_0460 that specifies
a complex repository dependency on package_bwa_0_5_9_0460 without a specified changeset revision or tool shed url.
'''
repository = test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_2_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_2_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
self.upload_file( repository,
filename='0460_files/tool_dependencies_in_root.tar',
filepath=None,
@@ -196,8 +196,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
This is step 6 - Upload an tarball with tool_dependencies.xml in a subfolder to complex_dependency_test_3_0460 that
specifies a complex repository dependency on package_bwa_0_5_9_0460 without a specified changeset revision or tool shed url.
'''
repository = test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_3_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_3_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
self.upload_file( repository,
filename='0460_files/tool_dependencies_in_subfolder.tar',
filepath=None,
@@ -220,7 +220,7 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
'''
This is step 7 - Create hg_tool_dependency_0460 and hg_subfolder_tool_dependency_0460 and populate with tool dependencies.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name='hg_tool_dependency_0460',
description=bwa_repository_description,
long_description=bwa_repository_long_description,
@@ -258,8 +258,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
This is step 8 - Upload to complex_dependency_test_4_0460 using the url hg://<tool shed url>/repos/user1/hg_tool_dependency_0460.
'''
url = 'hg://%s:%s/repos/user1/hg_tool_dependency_0460' % ( self.host, self.port )
repository = test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_4_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_4_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
self.upload_url( repository,
url=url,
filepath=None,
@@ -282,8 +282,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
This is step 9 - Upload to complex_dependency_test_5_0460 using the url hg://<tool shed url>/repos/user1/hg_subfolder_tool_dependency_0460.
'''
url = 'hg://%s:%s/repos/user1/hg_subfolder_tool_dependency_0460' % ( self.host, self.port )
repository = test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_5_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'complex_dependency_test_5_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'package_bwa_0_5_9_0460', common.test_user_1_name )
self.upload_url( repository,
url=url,
filepath=None,
@@ -314,7 +314,7 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
- Upload via url, with the repository_dependencies.xml in the root of another repository.
- Upload via url, with the repository_dependencies.xml in a subfolder within another repository.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository_base_name = 'repository_dependency_test_%d_0460'
repository_base_description = 'Test #%d for repository dependency definitions.'
repository_base_long_description = 'Test #%d for repository dependency definitions.'
@@ -333,8 +333,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
This is step 11 - Upload an uncompressed repository_dependencies.xml to repository_dependency_test_1_0460 that specifies a
repository dependency on emboss_datatypes_0460 without a specified changeset revision or tool shed url.
'''
repository = test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_1_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_1_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
self.upload_file( repository,
filename='0460_files/repository_dependencies.xml',
filepath=None,
@@ -354,8 +354,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
'''
This is step 12 - Upload a tarball to repository_dependency_test_2_0460 with a repository_dependencies.xml in the root of the tarball.
'''
repository = test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_2_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_2_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
self.upload_file( repository,
filename='0460_files/repository_dependencies_in_root.tar',
filepath=None,
@@ -376,8 +376,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
This is step 13 - Upload a tarball to repository_dependency_test_3_0460 with a repository_dependencies.xml in a
subfolder within the tarball.
'''
repository = test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_3_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_3_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
self.upload_file( repository,
filename='0460_files/repository_dependencies_in_subfolder.tar',
filepath=None,
@@ -401,7 +401,7 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
This is step 14 - Create hg_repository_dependency_0460 and hg_subfolder_repository_dependency_0460 and populate
with repository dependencies.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name='hg_repository_dependency_0460',
description=bwa_repository_description,
long_description=bwa_repository_long_description,
@@ -440,8 +440,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
hg://<tool shed url>/repos/user1/hg_repository_dependency_0460.
'''
url = 'hg://%s:%s/repos/user1/hg_repository_dependency_0460' % ( self.host, self.port )
repository = test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_4_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_4_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
self.upload_url( repository,
url=url,
filepath=None,
@@ -465,8 +465,8 @@ class TestAutomaticDependencyRevision( ShedTwillTestCase ):
hg://<tool shed url>/repos/user1/hg_subfolder_repository_dependency_0460.
'''
url = 'hg://%s:%s/repos/user1/hg_subfolder_repository_dependency_0460' % ( self.host, self.port )
repository = test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_5_0460', common.test_user_1_name )
package_repository = test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'repository_dependency_test_5_0460', common.test_user_1_name )
package_repository = self.test_db_util.get_repository_by_name_and_owner( 'emboss_datatypes_0460', common.test_user_1_name )
self.upload_url( repository,
url=url,
filepath=None,
@@ -1,5 +1,4 @@
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__ )
@@ -50,6 +49,7 @@ emboss_repository_long_description = "Galaxy wrappers for Emboss version 5.0.0 t
10. Reset metadata on the emboss_5 repository. It should now have only it's tip as the installable revision.
'''
class TestEnvironmentInheritance( ShedTwillTestCase ):
'''Test referencing environment variables that were defined in a separate tool dependency.'''
@@ -57,20 +57,20 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.create_category( name=category_name, description=category_description )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
def test_0005_create_libx11_repository( self ):
'''Create and populate package_x11_client_1_5_proto_7_0_0470.'''
@@ -80,7 +80,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
Create and populate a repository named package_x11_client_1_5_proto_7_0 that contains only a single file named tool_dependencies.xml.
Keep the repository type as the default "Unrestricted".
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=package_libx11_repository_name,
description=package_libx11_repository_description,
long_description=package_libx11_repository_long_description,
@@ -107,7 +107,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
above package_x11_client_1_5_proto_7_0 repository. Upload the tool_dependencues.xml file such that it does not have a changeset_revision
defined so it will get automatically populated.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=package_emboss_repository_name,
description=package_emboss_repository_description,
long_description=package_emboss_repository_long_description,
@@ -134,7 +134,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
on the package_emboss_5_0_0 repository above. Upload the tool_dependencies.xml file such that it does not have a change set_revision defined
so it will get automatically populated.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=emboss_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -158,7 +158,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
This is step 4 - Add a comment to the tool_dependencies.xml file to be uploaded to the package_x11_client_1_5_prot_7_0 repository, creating
a new installable changeset revision at the repository tip.
'''
package_x11_repository = test_db_util.get_repository_by_name_and_owner( package_libx11_repository_name, common.test_user_1_name )
package_x11_repository = self.test_db_util.get_repository_by_name_and_owner( package_libx11_repository_name, common.test_user_1_name )
# Upload the tool dependency definition to the package_x11_client_1_5_proto_7_0_0470 repository.
self.upload_file( package_x11_repository,
filename='emboss/libx11_proto/second_tool_dependency/tool_dependencies.xml',
@@ -178,7 +178,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
the change set_revision attribute so that it gets automatically populated when uploaded. After uploading the file,
the package_emboss_5_0_0 repository should have 2 installable changeset revisions.
'''
package_emboss_repository = test_db_util.get_repository_by_name_and_owner( package_emboss_repository_name, common.test_user_1_name )
package_emboss_repository = self.test_db_util.get_repository_by_name_and_owner( package_emboss_repository_name, common.test_user_1_name )
# Populate package_emboss_5_0_0_0470 with updated tool dependency definition.
self.upload_file( package_emboss_repository,
filename='emboss/emboss_5_0_0/second_tool_dependency/tool_dependencies.xml',
@@ -198,7 +198,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
changeset_revision attribute so that it gets automatically populated when uploaded. After uploading the file,
the emboss5 repository should have 2 installable metadata revisions.
'''
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
# Populate package_emboss_5_0_0_0470 with updated tool dependency definition.
self.upload_file( emboss_repository,
filename='emboss/0470_files/tool_dependencies.xml',
@@ -216,7 +216,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
'''
This is step 7 - Change the repository type of the package_x11_client_1_5_proto_7_0 repository to be tool_dependency_definition.
'''
package_x11_repository = test_db_util.get_repository_by_name_and_owner( package_libx11_repository_name, common.test_user_1_name )
package_x11_repository = self.test_db_util.get_repository_by_name_and_owner( package_libx11_repository_name, common.test_user_1_name )
self.edit_repository_information( package_x11_repository, repository_type='tool_dependency_definition' )
def test_0040_modify_package_emboss_repository_type( self ):
@@ -224,7 +224,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
'''
This is step 8 - Change the repository type of the package_emboss_5_0_0 repository to be tool_dependency_definition.
'''
package_emboss_repository = test_db_util.get_repository_by_name_and_owner( package_emboss_repository_name, common.test_user_1_name )
package_emboss_repository = self.test_db_util.get_repository_by_name_and_owner( package_emboss_repository_name, common.test_user_1_name )
self.edit_repository_information( package_emboss_repository, repository_type='tool_dependency_definition' )
def test_0045_reset_repository_metadata( self ):
@@ -233,8 +233,8 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
This is step 9 - Reset metadata on the package_emboss_5_0_0 and package_x11_client_1_5_proto_7_0 repositories. They should
now have only their tip as the installable revision.
'''
package_emboss_repository = test_db_util.get_repository_by_name_and_owner( package_emboss_repository_name, common.test_user_1_name )
package_x11_repository = test_db_util.get_repository_by_name_and_owner( package_libx11_repository_name, common.test_user_1_name )
package_emboss_repository = self.test_db_util.get_repository_by_name_and_owner( package_emboss_repository_name, common.test_user_1_name )
package_x11_repository = self.test_db_util.get_repository_by_name_and_owner( package_libx11_repository_name, common.test_user_1_name )
self.reset_repository_metadata( package_emboss_repository )
self.reset_repository_metadata( package_x11_repository )
assert len( package_emboss_repository.metadata_revisions ) == 1, 'Repository package_emboss_5_0_0 has %d installable revisions, expected 1.' % \
@@ -247,7 +247,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
'''
This is step 10 - Reset metadata on the emboss_5 repository. It should now have only it's tip as the installable revision.
'''
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
self.reset_repository_metadata( emboss_repository )
assert len( emboss_repository.metadata_revisions ) == 1, 'Repository emboss_5 has %d installable revisions, expected 1.' % \
len( emboss_repository.metadata_revisions )
@@ -1,5 +1,4 @@
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__ )
@@ -18,6 +17,7 @@ repository_long_description = "This repository is in the test suite 0480"
'''
class TestDependencyDefinitionValidation( ShedTwillTestCase ):
'''Test the tool shed's tool dependency XML validation.'''
@@ -25,20 +25,20 @@ class TestDependencyDefinitionValidation( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.create_category( name=category_name, description=category_description )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
def test_0005_create_tool_dependency_repository( self ):
'''Create and populate package_invalid_tool_dependency_xml_1_0_0.'''
@@ -47,7 +47,7 @@ class TestDependencyDefinitionValidation( ShedTwillTestCase ):
Create a repository named package_invalid_tool_dependency_xml_1_0_0 that will contain only a single file named tool_dependencies.xml.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
@@ -69,7 +69,7 @@ class TestDependencyDefinitionValidation( ShedTwillTestCase ):
'''
This is step 3 - Verify repository. The uploaded tool dependency XML should not have resulted in a new changeset.
'''
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
assert self.repository_is_new( repository ), 'Uploading an incorrectly defined tool_dependencies.xml resulted in a changeset being generated.'
@@ -1,5 +1,4 @@
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__ )
@@ -22,6 +21,7 @@ First test:
'''
class TestExportImportRepository( ShedTwillTestCase ):
'''Test exporting and importing repositories.'''
@@ -29,14 +29,14 @@ class TestExportImportRepository( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_import_repository_capsule( self ):
"""Import the filter_0490 repository capsule."""
@@ -63,7 +63,7 @@ class TestExportImportRepository( ShedTwillTestCase ):
Export the repository to a temporary location.
'''
global capsule_filepath
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
capsule_filepath = self.export_capsule( repository )
log.debug( os.path.exists( capsule_filepath ) )
@@ -1,5 +1,4 @@
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__ )
@@ -24,6 +23,7 @@ category_description = 'Test script 0500 for importing and exporting repositorie
6. Verify the resulting page is correct.
'''
class TestExportImportRepository( ShedTwillTestCase ):
'''Test exporting and importing repositories.'''
@@ -31,14 +31,14 @@ class TestExportImportRepository( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_category_and_repository( self ):
"""Create categories for this test suite"""
@@ -61,7 +61,7 @@ class TestExportImportRepository( ShedTwillTestCase ):
Export the repository to a temporary location.
'''
global capsule_filepath
repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
capsule_filepath = self.export_capsule( repository )
log.debug( os.path.exists( capsule_filepath ) )
@@ -1,5 +1,4 @@
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__ )
@@ -17,6 +16,7 @@ Export the trans_proteomic_pipeline repository with dependencies.
Check the capsule's contents, verify that changeset revision and tool shed are not set.
'''
class TestExportImportRepository( ShedTwillTestCase ):
'''Test exporting and importing repositories with complex dependencies.'''
@@ -24,14 +24,14 @@ class TestExportImportRepository( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_category_and_repositories( self ):
"""Create categories for this test suite"""
@@ -62,7 +62,7 @@ class TestExportImportRepository( ShedTwillTestCase ):
Export the repository to a temporary location.
'''
global capsule_filepath
repository = test_db_util.get_repository_by_name_and_owner( 'package_trans_proteomic_pipeline_4_6_3', common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( 'package_trans_proteomic_pipeline_4_6_3', common.test_user_1_name )
capsule_filepath = self.export_capsule( repository )
log.debug( os.path.exists( capsule_filepath ) )
@@ -1,5 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
class BasicToolShedFeatures( ShedTwillTestCase ):
@@ -9,19 +8,19 @@ class BasicToolShedFeatures( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
def test_0005_ensure_repositories_and_categories_exist( self ):
'''Create the 0000 category and upload the filtering repository to it, if necessary.'''
@@ -82,7 +81,7 @@ class BasicToolShedFeatures( ShedTwillTestCase ):
def test_0015_browse_test_0000_category( self ):
'''Browse the category created in test 0000. It should contain the filtering_0000 repository also created in that test.'''
category = test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
category = self.test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
self.browse_category( category, strings_displayed=[ 'filtering_0000' ] )
def test_0020_preview_filtering_repository( self ):
@@ -94,7 +93,7 @@ class BasicToolShedFeatures( ShedTwillTestCase ):
common.test_user_1_name,
'Test 0000 Basic Repository Features 1',
new_tool_panel_section_label='test_1000' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
strings_displayed = [ 'filtering_0000',
"Galaxy's filtering tool",
'user1',
@@ -107,7 +106,7 @@ class BasicToolShedFeatures( ShedTwillTestCase ):
def test_0030_install_filtering_repository_again( self ):
'''Attempt to install the already installed filtering repository.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
# The page displayed after installation is the ajaxian "Montior installing tool shed repositories" page. Since the filter
# repository was already installed, nothing will be in the process of being installed, so the grid will display 'No Items'.
post_submit_strings_displayed = [ 'No Items' ]
@@ -1,5 +1,6 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
import logging
repository_name = 'freebayes_0010'
repository_description="Galaxy's freebayes tool"
@@ -7,25 +8,26 @@ repository_long_description="Long description of Galaxy's freebayes tool"
category_name = 'Test 0010 Repository With Tool Dependencies'
log = logging.getLogger( __name__ )
class ToolWithToolDependencies( ShedTwillTestCase ):
'''Test installing a repository with tool dependencies.'''
def test_0000_initiate_users( self ):
"""Create necessary user accounts."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_galaxy_user( common.admin_email )
admin_user = self.test_db_util.get_galaxy_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_galaxy_private_role( admin_user )
admin_user_private_role = self.test_db_util.get_galaxy_private_role( admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_ensure_repositories_and_categories_exist( self ):
'''Create the 0010 category and upload the freebayes repository to it, if necessary.'''
category = self.create_category( name=category_name, description='Tests for a repository with tool dependencies.' )
@@ -96,7 +98,7 @@ class ToolWithToolDependencies( ShedTwillTestCase ):
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
self.browse_tool_shed( url=self.url, strings_displayed=[ category_name ] )
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
self.browse_category( category, strings_displayed=[ repository_name ] )
strings_displayed = [ repository_name, 'Valid tools', 'Tool dependencies' ]
self.preview_repository_in_tool_shed( repository_name, common.test_user_1_name, strings_displayed=strings_displayed )
@@ -110,7 +112,7 @@ class ToolWithToolDependencies( ShedTwillTestCase ):
strings_displayed=strings_displayed,
install_tool_dependencies=False,
new_tool_panel_section_label='test_1010' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
strings_displayed = [ 'freebayes_0010',
"Galaxy's freebayes tool",
'user1',
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0020'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -12,7 +10,6 @@ emboss_repository_long_description = 'Galaxy wrappers for Emboss version 5.0.0 t
base_datatypes_count = 0
repository_datatypes_count = 0
class ToolWithRepositoryDependencies( ShedTwillTestCase ):
'''Test installing a repository with repository dependencies.'''
@@ -20,19 +17,19 @@ class ToolWithRepositoryDependencies( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
def test_0005_ensure_repositories_and_categories_exist( self ):
'''Create the 0020 category and any missing repositories.'''
@@ -83,7 +80,7 @@ class ToolWithRepositoryDependencies( ShedTwillTestCase ):
self.galaxy_login( email=common.admin_email, username=common.admin_username )
base_datatypes_count = int( self.get_datatypes_count() )
self.browse_tool_shed( url=self.url, strings_displayed=[ 'Test 0020 Basic Repository Dependencies' ] )
category = test_db_util.get_category_by_name( 'Test 0020 Basic Repository Dependencies' )
category = self.test_db_util.get_category_by_name( 'Test 0020 Basic Repository Dependencies' )
self.browse_category( category, strings_displayed=[ 'emboss_0020' ] )
self.preview_repository_in_tool_shed( 'emboss_0020', common.test_user_1_name, strings_displayed=[ 'emboss_0020', 'Valid tools' ] )
@@ -98,7 +95,7 @@ class ToolWithRepositoryDependencies( ShedTwillTestCase ):
strings_displayed=strings_displayed,
install_tool_dependencies=False,
new_tool_panel_section_label='test_1020' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'emboss_0020', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'emboss_0020', common.test_user_1_name )
strings_displayed = [ 'emboss_0020',
'Galaxy wrappers for Emboss version 5.0.0 tools for test 0020',
'user1',
@@ -118,39 +115,21 @@ class ToolWithRepositoryDependencies( ShedTwillTestCase ):
'''Verify that resetting the metadata on an installed repository does not change the metadata.'''
self.verify_installed_repository_metadata_unchanged( 'emboss_0020', common.test_user_1_name )
def test_0025_uninstall_datatypes_repository( self ):
'''Uninstall the emboss_datatypes repository.'''
global base_datatypes_count
installed_repository = test_db_util.get_installed_repository_by_name_owner( datatypes_repository_name, common.test_user_1_name )
old_datatypes_count = int( self.get_datatypes_count() )
self.uninstall_repository( installed_repository, remove_from_disk=True )
current_datatypes = int( self.get_datatypes_count() )
assert current_datatypes < old_datatypes_count, 'Uninstalling emboss did not remove datatypes.'
def test_0030_reinstall_datatypes_repository( self ):
'''Reinstall the emboss_datatypes repository.'''
global repository_datatypes_count
global base_datatypes_count
installed_repository = test_db_util.get_installed_repository_by_name_owner( datatypes_repository_name, common.test_user_1_name )
self.reinstall_repository( installed_repository )
current_datatypes = int( self.get_datatypes_count() )
assert current_datatypes > base_datatypes_count, 'Reinstalling emboss did not add new datatypes.'
def test_0035_deactivate_datatypes_repository( self ):
def test_0025_deactivate_datatypes_repository( self ):
'''Deactivate the emboss_datatypes repository without removing it from disk.'''
global repository_datatypes_count
global base_datatypes_count
installed_repository = test_db_util.get_installed_repository_by_name_owner( datatypes_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( datatypes_repository_name, common.test_user_1_name )
old_datatypes_count = int( self.get_datatypes_count() )
self.uninstall_repository( installed_repository, remove_from_disk=False )
current_datatypes = int( self.get_datatypes_count() )
assert current_datatypes < old_datatypes_count, 'Uninstalling emboss did not remove datatypes.'
def test_0040_reactivate_datatypes_repository( self ):
def test_0030_reactivate_datatypes_repository( self ):
'''Reactivate the datatypes repository and verify that the datatypes are again present.'''
global repository_datatypes_count
global base_datatypes_count
installed_repository = test_db_util.get_installed_repository_by_name_owner( datatypes_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( datatypes_repository_name, common.test_user_1_name )
self.reactivate_repository( installed_repository )
current_datatypes = int( self.get_datatypes_count() )
assert current_datatypes > base_datatypes_count, 'Reactivating emboss did not add new datatypes.'
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0030'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -15,7 +13,6 @@ base_datatypes_count = 0
repository_datatypes_count = 0
running_standalone = False
class RepositoryWithDependencyRevisions( ShedTwillTestCase ):
'''Test installing a repository with dependency revisions.'''
@@ -23,19 +20,19 @@ class RepositoryWithDependencyRevisions( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
def test_0005_ensure_repositories_and_categories_exist( self ):
'''Create the 0030 category and add repositories to it, if necessary.'''
@@ -124,7 +121,7 @@ class RepositoryWithDependencyRevisions( ShedTwillTestCase ):
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
self.browse_tool_shed( url=self.url, strings_displayed=[ 'Test 0030 Repository Dependency Revisions' ] )
category = test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
category = self.test_db_util.get_category_by_name( 'Test 0030 Repository Dependency Revisions' )
self.browse_category( category, strings_displayed=[ 'emboss_0030' ] )
self.preview_repository_in_tool_shed( 'emboss_0030', common.test_user_1_name, strings_displayed=[ 'emboss_0030', 'Valid tools' ] )
@@ -141,7 +138,7 @@ class RepositoryWithDependencyRevisions( ShedTwillTestCase ):
strings_displayed=strings_displayed,
install_tool_dependencies=False,
new_tool_panel_section_label='test_1030' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'emboss_0030', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'emboss_0030', common.test_user_1_name )
strings_displayed = [ 'emboss_0030',
'Galaxy wrappers for Emboss version 5.0.0 tools for test 0030',
'user1',
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
freebayes_repository_name = 'freebayes_0040'
freebayes_repository_description = "Galaxy's freebayes tool for test 0040"
freebayes_repository_long_description = "Long description of Galaxy's freebayes tool for test 0040"
@@ -13,7 +11,6 @@ category_name = 'test_0040_repository_circular_dependencies'
running_standalone = False
class TestInstallingCircularDependencies( ShedTwillTestCase ):
'''Verify that the code correctly handles installing repositories with circular dependencies.'''
@@ -21,14 +18,14 @@ class TestInstallingCircularDependencies( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_freebayes_repository( self ):
'''Create and populate freebayes_0040.'''
@@ -86,8 +83,8 @@ class TestInstallingCircularDependencies( ShedTwillTestCase ):
# Filtering will have two revisions, one with just the filtering tool, and one with the filtering tool and a dependency on freebayes.
global running_standalone
if running_standalone:
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_1040', additional_paths=[ 'circular' ] )
repository_tuple = ( self.url, freebayes_repository.name, freebayes_repository.user.username, self.get_repository_tip( freebayes_repository ) )
self.create_repository_dependency( repository=filtering_repository, repository_tuples=[ repository_tuple ], filepath=repository_dependencies_path )
@@ -106,51 +103,58 @@ class TestInstallingCircularDependencies( ShedTwillTestCase ):
install_tool_dependencies=False,
install_repository_dependencies=True )
def test_0030_uninstall_freebayes_repository( self ):
'''Uninstall freebayes, verify tool panel section and missing repository dependency.'''
installed_freebayes_repository = test_db_util.get_installed_repository_by_name_owner( freebayes_repository_name, common.test_user_1_name )
installed_filtering_repository = test_db_util.get_installed_repository_by_name_owner( filtering_repository_name, common.test_user_1_name )
self.uninstall_repository( installed_freebayes_repository, remove_from_disk=True )
test_db_util.ga_refresh( installed_freebayes_repository )
self.check_galaxy_repository_tool_panel_section( installed_freebayes_repository, '' )
strings_displayed = [ 'Missing repository', 'freebayes', 'filtering_0040', 'user1', "Galaxy's filtering tool for test 0040" ]
self.display_installed_repository_manage_page( installed_filtering_repository, strings_displayed=strings_displayed )
self.check_galaxy_repository_db_status( freebayes_repository_name,
common.test_user_1_name,
'Uninstalled' )
def test_0035_reinstall_freebayes_repository( self ):
'''Reinstall freebayes into 'freebayes' tool panel section.'''
installed_freebayes_repository = test_db_util.get_installed_repository_by_name_owner( freebayes_repository_name,
common.test_user_1_name )
self.reinstall_repository( installed_freebayes_repository,
install_tool_dependencies=False,
install_repository_dependencies=True,
new_tool_panel_section_label='freebayes',
no_changes=False )
def test_0040_uninstall_filtering_repository( self ):
'''Uninstall filtering, verify tool panel section.'''
installed_filtering_repository = test_db_util.get_installed_repository_by_name_owner( filtering_repository_name, common.test_user_1_name )
installed_freebayes_repository = test_db_util.get_installed_repository_by_name_owner( freebayes_repository_name, common.test_user_1_name )
self.uninstall_repository( installed_filtering_repository, remove_from_disk=True )
test_db_util.ga_refresh( installed_filtering_repository )
def test_0030_uninstall_filtering_repository( self ):
'''Deactivate filtering, verify tool panel section and missing repository dependency.'''
installed_freebayes_repository = self.test_db_util.get_installed_repository_by_name_owner( freebayes_repository_name, common.test_user_1_name )
installed_filtering_repository = self.test_db_util.get_installed_repository_by_name_owner( filtering_repository_name, common.test_user_1_name )
self.display_installed_repository_manage_page( installed_freebayes_repository )
self.display_installed_repository_manage_page( installed_filtering_repository )
self.uninstall_repository( installed_filtering_repository, remove_from_disk=False )
self.test_db_util.ga_refresh( installed_filtering_repository )
self.check_galaxy_repository_tool_panel_section( installed_filtering_repository, '' )
strings_displayed = [ 'Missing repository', 'filtering', 'freebayes_0040', 'user1', "Galaxy's freebayes tool for test 0040" ]
self.display_installed_repository_manage_page( installed_freebayes_repository, strings_displayed=strings_displayed )
self.check_galaxy_repository_db_status( filtering_repository_name,
common.test_user_1_name,
'Uninstalled' )
def test_0045_uninstall_freebayes_repository( self ):
'''Uninstall freebayes, verify tool panel section and missing repository dependency.'''
installed_freebayes_repository = test_db_util.get_installed_repository_by_name_owner( freebayes_repository_name, common.test_user_1_name )
installed_filtering_repository = test_db_util.get_installed_repository_by_name_owner( filtering_repository_name, common.test_user_1_name )
self.uninstall_repository( installed_freebayes_repository, remove_from_disk=True )
test_db_util.ga_refresh( installed_freebayes_repository )
self.check_galaxy_repository_tool_panel_section( installed_freebayes_repository, 'freebayes' )
'Deactivated' )
def test_0035_reactivate_filtering_repository( self ):
'''Reinstall filtering into 'filtering' tool panel section.'''
installed_filtering_repository = self.test_db_util.get_installed_repository_by_name_owner( freebayes_repository_name,
common.test_user_1_name )
self.reinstall_repository( installed_filtering_repository,
install_tool_dependencies=False,
install_repository_dependencies=True,
new_tool_panel_section_label='filtering',
no_changes=False )
def test_0040_uninstall_freebayes_repository( self ):
'''Deactivate freebayes, verify tool panel section and missing repository dependency.'''
installed_freebayes_repository = self.test_db_util.get_installed_repository_by_name_owner( freebayes_repository_name, common.test_user_1_name )
installed_filtering_repository = self.test_db_util.get_installed_repository_by_name_owner( filtering_repository_name, common.test_user_1_name )
self.display_installed_repository_manage_page( installed_freebayes_repository )
self.display_installed_repository_manage_page( installed_filtering_repository )
self.uninstall_repository( installed_freebayes_repository, remove_from_disk=False )
self.test_db_util.ga_refresh( installed_freebayes_repository )
self.check_galaxy_repository_tool_panel_section( installed_freebayes_repository, '' )
strings_displayed = [ 'Missing repository', 'freebayes', 'filtering_0040', 'user1', "Galaxy's filtering tool for test 0040" ]
self.display_installed_repository_manage_page( installed_filtering_repository, strings_displayed=strings_displayed )
self.check_galaxy_repository_db_status( 'freebayes_0040',
'user1',
'Uninstalled' )
'Deactivated' )
def test_0045_deactivate_filtering_repository( self ):
'''Deactivate filtering, verify tool panel section.'''
installed_filtering_repository = self.test_db_util.get_installed_repository_by_name_owner( filtering_repository_name, common.test_user_1_name )
installed_freebayes_repository = self.test_db_util.get_installed_repository_by_name_owner( freebayes_repository_name, common.test_user_1_name )
self.display_installed_repository_manage_page( installed_freebayes_repository )
self.display_installed_repository_manage_page( installed_filtering_repository )
self.uninstall_repository( installed_filtering_repository, remove_from_disk=False )
self.test_db_util.ga_refresh( installed_filtering_repository )
self.check_galaxy_repository_tool_panel_section( installed_filtering_repository, '' )
strings_displayed = [ 'Missing repository', 'filtering', 'freebayes_0040', 'user1', "Galaxy's freebayes tool for test 0040" ]
self.display_installed_repository_manage_page( installed_freebayes_repository, strings_displayed=strings_displayed )
self.check_galaxy_repository_db_status( filtering_repository_name,
common.test_user_1_name,
'Deactivated' )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
emboss_datatypes_repository_name = 'emboss_datatypes_0050'
emboss_datatypes_repository_description = "Datatypes for emboss"
emboss_datatypes_repository_long_description = "Long description of Emboss' datatypes"
@@ -34,7 +32,6 @@ category_description = 'Test circular dependency features'
running_standalone = False
class TestInstallRepositoryCircularDependencies( ShedTwillTestCase ):
'''Verify that the code correctly handles circular dependencies down to n levels.'''
@@ -42,14 +39,14 @@ class TestInstallRepositoryCircularDependencies( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_convert_repository( self ):
'''Create and populate convert_chars_0050.'''
@@ -199,13 +196,13 @@ class TestInstallRepositoryCircularDependencies( ShedTwillTestCase ):
'''Set up the dependency structure.'''
global running_standalone
if running_standalone:
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bismark_repository = test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bismark_repository = self.test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_1050', additional_paths=[ 'dependencies' ] )
# convert_chars depends on column_maker
# column_maker depends on convert_chars
@@ -247,13 +244,13 @@ class TestInstallRepositoryCircularDependencies( ShedTwillTestCase ):
id: 7 key: http://toolshed.local:10001__ESEP__emboss_5__ESEP__test__ESEP__8de5fe0d7b04
['http://toolshed.local:10001', 'emboss_datatypes', 'test', 'dbd4f68bf507']
'''
emboss_datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
bismark_repository = test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
emboss_datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
bismark_repository = self.test_db_util.get_repository_by_name_and_owner( bismark_repository_name, common.test_user_1_name )
self.check_repository_dependency( convert_repository, column_repository )
self.check_repository_dependency( column_repository, convert_repository )
self.check_repository_dependency( emboss_datatypes_repository, bismark_repository )
@@ -267,8 +264,8 @@ class TestInstallRepositoryCircularDependencies( ShedTwillTestCase ):
def test_0050_verify_tool_dependencies( self ):
'''Check that freebayes and emboss display tool dependencies.'''
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
self.display_manage_repository_page( freebayes_repository,
strings_displayed=[ 'freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Tool dependencies' ] )
self.display_manage_repository_page( emboss_repository, strings_displayed=[ 'Tool dependencies', 'emboss', '5.0.0', 'package' ] )
@@ -317,7 +314,7 @@ class TestInstallRepositoryCircularDependencies( ShedTwillTestCase ):
def test_0065_deactivate_datatypes_repository( self ):
'''Deactivate emboss_datatypes and verify that the datatypes count is reduced.'''
original_datatypes = self.get_datatypes_count()
repository = test_db_util.get_installed_repository_by_name_owner( emboss_datatypes_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_datatypes_repository_name, common.test_user_1_name )
self.uninstall_repository( repository, remove_from_disk=False )
assert original_datatypes > self.get_datatypes_count(), 'Deactivating emboss_datatypes did not remove datatypes.'
# Now we have emboss, bismark, column_maker, and convert_chars installed, filtering and freebayes never installed, and emboss_datatypes deactivated.
@@ -332,11 +329,11 @@ class TestInstallRepositoryCircularDependencies( ShedTwillTestCase ):
def test_0070_uninstall_emboss_repository( self ):
'''Uninstall the emboss_5 repository.'''
repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.uninstall_repository( repository, remove_from_disk=True )
strings_not_displayed = [ repository.name, repository.installed_changeset_revision ]
self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed )
test_db_util.ga_refresh( repository )
self.test_db_util.ga_refresh( repository )
self.check_galaxy_repository_tool_panel_section( repository, 'emboss_5_0050' )
# Now we have bismark, column_maker, and convert_chars installed, filtering and freebayes never installed, emboss_datatypes deactivated,
# and emboss uninstalled.
@@ -360,8 +357,8 @@ class TestInstallRepositoryCircularDependencies( ShedTwillTestCase ):
install_repository_dependencies=True,
new_tool_panel_section_label='freebayes' )
assert original_datatypes < self.get_datatypes_count(), 'Installing a repository that depends on emboss_datatypes did not add datatypes.'
emboss_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_installed_repository_by_name_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_datatypes_repository_name, common.test_user_1_name )
strings_displayed = [ 'emboss_0050',
'emboss_datatypes_0050',
emboss_repository.installed_changeset_revision,
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'filtering_0060'
repository_description="Galaxy's filtering tool for test 0060"
repository_long_description="Long description of Galaxy's filtering tool for test 0060"
@@ -16,25 +14,26 @@ workflow_repository_name = 'filtering_workflow_0060'
workflow_repository_description="Workflow referencing the filtering tool for test 0060"
workflow_repository_long_description="Long description of the workflow for test 0060"
class ToolWithRepositoryDependencies( ShedTwillTestCase ):
'''Test installing a repository with repository dependencies.'''
def test_0000_initiate_users( self ):
"""Create necessary user accounts."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_ensure_category_exists( self ):
'''Create the 0060 category.'''
category = self.create_category( name=category_name, description=category_description )
@@ -85,7 +84,7 @@ class ToolWithRepositoryDependencies( ShedTwillTestCase ):
new_tool_panel_section_label='test_1060' )
def test_0015_import_workflow_from_installed_repository( self ):
'''Import the workflow from the installed repository and verify that it appears in the list of all workflows.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
self.display_installed_workflow_image( installed_repository,
workflow_name,
strings_displayed=[ '#EBD9B2' ],
@@ -140,7 +139,7 @@ class ToolWithRepositoryDependencies( ShedTwillTestCase ):
includes_tools_for_display_in_tool_panel=False )
def test_0030_import_workflow_from_installed_repository( self ):
'''Import the workflow from the installed repository and verify that it appears in the list of all workflows.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( workflow_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( workflow_repository_name, common.test_user_1_name )
self.display_installed_workflow_image( installed_repository,
'New workflow for 0060_filter_workflow_repository',
strings_displayed=[ '#EBD9B2' ],
@@ -1,37 +1,36 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'bismark_0070'
repository_description = "Galaxy's bismark wrapper"
repository_long_description = "Long description of Galaxy's bismark wrapper"
category_name = 'Test 0070 Invalid Tool Revisions'
category_description = 'Test 1070 for a repository with an invalid tool.'
class TestFreebayesRepository( ShedTwillTestCase ):
'''Test repository with multiple revisions with invalid tools.'''
def test_0000_create_or_login_admin_user( self ):
"""Create necessary user accounts and login as an admin user."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_ensure_existence_of_repository_and_category( self ):
'''Create freebayes repository and upload only freebayes.xml. This should result in an error message and invalid tool.'''
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 )
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
@@ -62,7 +61,7 @@ class TestFreebayesRepository( ShedTwillTestCase ):
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
self.browse_tool_shed( url=self.url, strings_displayed=[ category_name ] )
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
self.browse_category( category, strings_displayed=[ repository_name ] )
self.preview_repository_in_tool_shed( repository_name, common.test_user_1_name, strings_displayed=[ repository_name ] )
def test_0015_install_freebayes_repository( self ):
@@ -72,7 +71,7 @@ class TestFreebayesRepository( ShedTwillTestCase ):
category_name,
install_tool_dependencies=False,
new_tool_panel_section_label='test_1070' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
strings_displayed = [ 'bismark_0070',
"Galaxy's bismark wrapper",
'user1',
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os, logging
import tool_shed.base.test_db_util as test_db_util
column_repository_name = 'column_maker_0080'
column_repository_description = "Add column"
column_repository_long_description = "Compute an expression on every row"
@@ -16,7 +14,6 @@ log = logging.getLogger( __name__ )
running_standalone = False
class TestRepositoryDependencies( ShedTwillTestCase ):
'''Testing uninstalling and reinstalling repository dependencies, and setting tool panel sections.'''
@@ -24,19 +21,19 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_and_populate_column_repository( self ):
"""Create the category for this test suite, then create and populate column_maker."""
@@ -92,8 +89,8 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
'''If this test is being run by itself, it will not have repository dependencies configured yet.'''
global running_standalone
if running_standalone:
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_1080', additional_paths=[ 'convert' ] )
repository_tuple = ( self.url, convert_repository.name, convert_repository.user.username, self.get_repository_tip( convert_repository ) )
self.create_repository_dependency( repository=column_repository, repository_tuples=[ repository_tuple ], filepath=repository_dependencies_path )
@@ -110,9 +107,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
install_tool_dependencies=False,
install_repository_dependencies=False,
new_tool_panel_section_label='convert_chars' )
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
browse_strings_displayed = [ 'convert_chars_0080',
'Convert delimiters',
@@ -137,9 +134,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
install_repository_dependencies=True,
new_tool_panel_section_label='column_maker',
strings_displayed=[ 'install_repository_dependencies' ] )
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
browse_strings_displayed = [ 'convert_chars_0080',
'Convert delimiters',
@@ -161,9 +158,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0030_deactivate_convert_repository( self ):
'''Deactivate convert_chars, verify that column_maker is installed and missing repository dependencies.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_convert_repository, remove_from_disk=False )
strings_displayed = [ 'column_maker_0080',
@@ -179,9 +176,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0035_reactivate_convert_repository( self ):
'''Reactivate convert_chars, both convert_chars and column_maker should now show as installed.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.reactivate_repository( installed_convert_repository )
strings_displayed = [ 'convert_chars_0080',
@@ -198,9 +195,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0040_deactivate_column_repository( self ):
'''Deactivate column_maker, verify that convert_chars is installed and missing repository dependencies.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_column_repository, remove_from_disk=False )
strings_displayed = [ 'convert_chars_0080',
@@ -216,9 +213,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0045_deactivate_convert_repository( self ):
'''Deactivate convert_chars, verify that both convert_chars and column_maker are deactivated.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_convert_repository, remove_from_disk=False )
strings_not_displayed = [ 'column_maker_0080',
@@ -229,9 +226,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0050_reactivate_column_repository( self ):
'''Reactivate column_maker. This should not automatically reactivate convert_chars, so column_maker should be displayed as installed but missing repository dependencies.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.reactivate_repository( installed_column_repository )
strings_displayed = [ 'column_maker_0080',
@@ -247,9 +244,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0055_reactivate_convert_repository( self ):
'''Activate convert_chars. Both convert_chars and column_maker should now show as installed.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.reactivate_repository( installed_convert_repository )
strings_displayed = [ 'column_maker_0080',
@@ -273,9 +270,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0060_uninstall_column_repository( self ):
'''Uninstall column_maker. Verify that convert_chars is installed and missing repository dependencies, and column_maker was in the right tool panel section.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_column_repository, remove_from_disk=True )
strings_displayed = [ 'convert_chars_0080',
@@ -292,9 +289,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0065_reinstall_column_repository( self ):
'''Reinstall column_maker without repository dependencies, verify both convert_chars and column_maker are installed.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.reinstall_repository( installed_column_repository, install_repository_dependencies=False )
strings_displayed = [ 'column_maker_0080',
@@ -318,11 +315,11 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0070_uninstall_convert_repository( self ):
'''Uninstall convert_chars, verify column_maker installed but missing repository dependencies.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_convert_repository, remove_from_disk=True )
self.uninstall_repository( installed_convert_repository, remove_from_disk=False )
strings_displayed = [ 'column_maker_0080',
'Add column',
self.url.replace( 'http://', '' ),
@@ -330,18 +327,18 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
'convert_chars_0080',
installed_convert_repository.installed_changeset_revision,
'Missing repository dependencies',
'Uninstalled' ]
'Deactivated' ]
self.display_installed_repository_manage_page( installed_column_repository,
strings_displayed=strings_displayed )
self.check_galaxy_repository_tool_panel_section( installed_convert_repository, 'convert_chars' )
def test_0075_uninstall_column_repository( self ):
'''Uninstall column_maker, verify that both convert_chars and column_maker are uninstalled.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_column_repository, remove_from_disk=True )
self.uninstall_repository( installed_column_repository, remove_from_disk=False )
strings_displayed = [ 'convert_chars_0080',
'Convert delimiters',
self.url.replace( 'http://', '' ),
@@ -350,20 +347,19 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
installed_column_repository.installed_changeset_revision,
'Missing repository dependencies',
'Activate or reinstall repository',
'Uninstalled' ]
'Deactivated' ]
self.display_installed_repository_manage_page( installed_convert_repository,
strings_displayed=strings_displayed )
def test_0080_reinstall_convert_repository( self ):
'''Reinstall convert_chars with repository dependencies, verify that this installs both convert_chars and column_maker.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.reinstall_repository( installed_convert_repository,
install_repository_dependencies=True,
no_changes=False,
new_tool_panel_section_label='convert_maker' )
no_changes=False )
strings_displayed = [ 'column_maker_0080',
'Add column',
self.url.replace( 'http://', '' ),
@@ -385,14 +381,14 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0085_uninstall_all_repositories( self ):
'''Uninstall convert_chars and column_maker to verify that they are in the right tool panel sections.'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_column_repository, remove_from_disk=True )
self.uninstall_repository( installed_convert_repository, remove_from_disk=True )
test_db_util.ga_refresh( installed_column_repository )
test_db_util.ga_refresh( installed_convert_repository )
self.check_galaxy_repository_tool_panel_section( installed_column_repository, 'convert_maker' )
self.check_galaxy_repository_tool_panel_section( installed_convert_repository, 'convert_maker' )
self.uninstall_repository( installed_column_repository, remove_from_disk=False )
self.uninstall_repository( installed_convert_repository, remove_from_disk=False )
self.test_db_util.ga_refresh( installed_column_repository )
self.test_db_util.ga_refresh( installed_convert_repository )
self.check_galaxy_repository_tool_panel_section( installed_column_repository, '' )
self.check_galaxy_repository_tool_panel_section( installed_convert_repository, 'convert_chars' )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os, logging
import tool_shed.base.test_db_util as test_db_util
column_repository_name = 'column_maker_1085'
column_repository_description = "Add column"
column_repository_long_description = "Compute an expression on every row"
@@ -14,7 +12,6 @@ category_description = 'Test circular dependency features'
log = logging.getLogger( __name__ )
class TestRepositoryDependencies( ShedTwillTestCase ):
'''Testing the behavior of repository dependencies with tool panel sections.'''
@@ -22,19 +19,19 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_and_populate_column_repository( self ):
"""Create a category for this test suite and add repositories to it."""
@@ -82,8 +79,8 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
strings_not_displayed=[] )
def test_0015_create_and_upload_dependency_files( self ):
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_1085', additional_paths=[ 'column' ] )
repository_tuple = ( self.url, convert_repository.name, convert_repository.user.username, self.get_repository_tip( convert_repository ) )
self.create_repository_dependency( repository=column_repository, repository_tuples=[ repository_tuple ], filepath=repository_dependencies_path )
@@ -101,9 +98,9 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
install_repository_dependencies=True,
new_tool_panel_section_label='column_maker',
strings_displayed=[ 'install_repository_dependencies' ] )
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
browse_strings_displayed = [ 'convert_chars_1085',
'Convert delimiters',
@@ -125,22 +122,22 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0025_uninstall_column_repository( self ):
'''uninstall column_maker, verify same section'''
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_column_repository, remove_from_disk=True )
test_db_util.ga_refresh( installed_column_repository )
self.test_db_util.ga_refresh( installed_column_repository )
self.check_galaxy_repository_tool_panel_section( installed_column_repository, 'column_maker' )
def test_0030_uninstall_convert_repository( self ):
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_convert_repository, remove_from_disk=True )
test_db_util.ga_refresh( installed_convert_repository )
self.test_db_util.ga_refresh( installed_convert_repository )
self.check_galaxy_repository_tool_panel_section( installed_convert_repository, 'column_maker' )
def test_0035_reinstall_column_repository( self ):
'''reinstall column_maker into new section 'new_column_maker' (no_changes = false), no dependencies'''
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.reinstall_repository( installed_column_repository,
install_tool_dependencies=False,
@@ -156,7 +153,7 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0040_reinstall_convert_repository( self ):
'''reinstall convert_chars into new section 'new_convert_chars' (no_changes = false), no dependencies'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
self.reinstall_repository( installed_convert_repository,
install_tool_dependencies=False,
@@ -172,13 +169,13 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
def test_0045_uninstall_and_verify_tool_panel_sections( self ):
'''uninstall both and verify tool panel sections'''
installed_convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name,
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_column_repository, remove_from_disk=True )
self.uninstall_repository( installed_convert_repository, remove_from_disk=True )
test_db_util.ga_refresh( installed_convert_repository )
test_db_util.ga_refresh( installed_column_repository )
self.uninstall_repository( installed_column_repository, remove_from_disk=True )
self.test_db_util.ga_refresh( installed_convert_repository )
self.test_db_util.ga_refresh( installed_column_repository )
self.check_galaxy_repository_tool_panel_section( installed_column_repository, 'new_column_maker' )
self.check_galaxy_repository_tool_panel_section( installed_convert_repository, 'new_convert_chars' )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
column_repository_name = 'column_maker_1087'
column_repository_description = "Add column"
column_repository_long_description = "Compute an expression on every row"
@@ -12,7 +10,6 @@ convert_repository_long_description = "Convert delimiters to tab"
category_name = 'Test 1087 Advanced Circular Dependencies'
category_description = 'Test circular dependency features'
class TestRepositoryDependencies( ShedTwillTestCase ):
'''Test installing a repository, then updating it to include repository dependencies.'''
@@ -20,19 +17,19 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_and_populate_column_repository( self ):
"""Create a category for this test suite and add repositories to it."""
@@ -91,27 +88,27 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
install_repository_dependencies=True,
new_tool_panel_section_label='column_maker',
strings_not_displayed=[ 'install_repository_dependencies' ] )
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
self.uninstall_repository( installed_column_repository, remove_from_disk=True )
def test_0020_upload_dependency_xml( self ):
'''Upload a repository_dependencies.xml file to column_maker that specifies convert_chars.'''
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_1085', additional_paths=[ 'column' ] )
convert_tuple = ( self.url, convert_repository.name, convert_repository.user.username, self.get_repository_tip( convert_repository ) )
self.create_repository_dependency( repository=column_repository, repository_tuples=[ convert_tuple ], filepath=repository_dependencies_path )
def test_0025_verify_repository_dependency( self ):
'''Verify that the new revision of column_maker now depends on convert_chars.'''
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
self.check_repository_dependency( column_repository, convert_repository )
def test_0030_reinstall_column_repository( self ):
'''Reinstall column_maker and verify that it now shows repository dependencies.'''
installed_column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
strings_displayed=[ 'Handle repository dependencies', 'convert_chars_1087', self.get_repository_tip( convert_repository ) ]
# Due to twill's limitations, only check for strings on the (redirected) reselect tool panel section page, don't actually reinstall.
url = '/admin_toolshed/browse_repositories?operation=activate+or+reinstall&id=%s' % self.security.encode_id( installed_column_repository.id )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
emboss_datatypes_repository_name = 'emboss_datatypes_0090'
emboss_datatypes_repository_description = "Datatypes for emboss"
emboss_datatypes_repository_long_description = "Long description of Emboss' datatypes"
@@ -30,7 +28,6 @@ category_description = 'Test 0090 Tool Search And Installation'
running_standalone = False
class TestToolSearchAndInstall( ShedTwillTestCase ):
'''Verify that the code correctly handles circular dependencies down to n levels.'''
@@ -38,14 +35,14 @@ class TestToolSearchAndInstall( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_bwa_base_repository( self ):
'''Create and populate bwa_base_0090.'''
@@ -185,12 +182,12 @@ class TestToolSearchAndInstall( ShedTwillTestCase ):
'''Create and upload repository dependency definitions.'''
global running_standalone
if running_standalone:
bwa_color_repository = test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
emboss_datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bwa_color_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
emboss_datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_0090', additional_paths=[ 'freebayes' ] )
freebayes_tuple = ( self.url, freebayes_repository.name, freebayes_repository.user.username, self.get_repository_tip( freebayes_repository ) )
emboss_tuple = ( self.url, emboss_repository.name, emboss_repository.user.username, self.get_repository_tip( emboss_repository ) )
@@ -203,12 +200,12 @@ class TestToolSearchAndInstall( ShedTwillTestCase ):
def test_0040_verify_repository_dependencies( self ):
'''Verify the generated dependency structure.'''
bwa_color_repository = test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
emboss_datatypes_repository = test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
bwa_color_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
emboss_datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( filtering_repository_name, common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( freebayes_repository_name, common.test_user_1_name )
self.check_repository_dependency( emboss_repository, emboss_datatypes_repository )
self.check_repository_dependency( filtering_repository, freebayes_repository )
self.check_repository_dependency( bwa_base_repository, emboss_repository )
@@ -253,7 +250,7 @@ class TestToolSearchAndInstall( ShedTwillTestCase ):
strings_not_displayed = [ 'emboss_0090', 'emboss_datatypes_0090', 'bwa_color_0090', 'bwa_base_0090' ]
self.display_galaxy_browse_repositories_page( strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed )
self.verify_installed_repositories( installed_repositories )
filtering_repository = test_db_util.get_installed_repository_by_name_owner( filtering_repository_name, common.test_user_1_name )
filtering_repository = self.test_db_util.get_installed_repository_by_name_owner( filtering_repository_name, common.test_user_1_name )
self.uninstall_repository( filtering_repository, remove_from_disk=False )
strings_displayed = [ 'freebayes_0090' ]
strings_not_displayed = [ 'filtering_0090', 'emboss_0090', 'emboss_datatypes_0090', 'bwa_color_0090', 'bwa_base_0090' ]
@@ -280,7 +277,7 @@ class TestToolSearchAndInstall( ShedTwillTestCase ):
strings_not_displayed = [ 'filtering_0090', 'emboss_0090', 'bwa_color_0090', 'bwa_base_0090' ]
self.display_galaxy_browse_repositories_page( strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed )
self.verify_installed_repositories( installed_repositories )
datatypes_repository = test_db_util.get_installed_repository_by_name_owner( emboss_datatypes_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_datatypes_repository_name, common.test_user_1_name )
self.uninstall_repository( datatypes_repository, remove_from_disk=True )
strings_displayed = [ 'freebayes_0090' ]
strings_not_displayed = [ 'emboss_datatypes_0090', 'filtering_0090', 'emboss_0090', 'bwa_color_0090', 'bwa_base_0090' ]
@@ -288,8 +285,8 @@ class TestToolSearchAndInstall( ShedTwillTestCase ):
def test_0060_search_for_bwa_tools( self ):
'''Search for and install the repositories with BWA tools, and verify that this reinstalls emboss_datatypes and reactivates filtering.'''
bwa_color_repository = test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
bwa_color_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_color_repository_name, common.test_user_1_name )
bwa_base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
bwa_base_revision = self.get_repository_tip( bwa_base_repository )
bwa_color_revision = self.get_repository_tip( bwa_color_repository )
self.search_for_valid_tools( search_fields={ 'tool_id': 'bwa' },
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
bwa_base_repository_name = 'bwa_base_repository_0100'
bwa_base_repository_description = "BWA Base"
bwa_base_repository_long_description = "BWA tool that depends on bwa 0.5.9, with a complex repository dependency pointing at package_bwa_0_5_9_0100"
@@ -13,7 +11,6 @@ category_name = 'Test 0100 Complex Repository Dependencies'
category_description = 'Test 0100 Complex Repository Dependencies'
running_standalone = False
class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
'''Test features related to installing repositories with complex repository dependencies.'''
@@ -21,14 +18,14 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_bwa_package_repository( self ):
'''Create and populate package_bwa_0_5_9_0100.'''
@@ -73,7 +70,7 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
owner=common.test_user_1_name,
category_id=self.security.encode_id( category.id ),
strings_displayed=[] )
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='bwa/complex/bwa_base.tar',
filepath=None,
@@ -90,8 +87,8 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
if running_standalone:
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex', 'shed' ] )
xml_filename = self.get_filename( 'tool_dependencies.xml', filepath=dependency_path )
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
url = 'http://http://this is not an url!'
name = tool_repository.name
owner = tool_repository.user.username
@@ -112,8 +109,8 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
if running_standalone:
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex', 'shed' ] )
xml_filename = self.get_filename( 'tool_dependencies.xml', filepath=dependency_path )
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
url = self.url
name = 'invalid_repository!?'
owner = tool_repository.user.username
@@ -134,8 +131,8 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
if running_standalone:
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex', 'shed' ] )
xml_filename = self.get_filename( 'tool_dependencies.xml', filepath=dependency_path )
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
url = self.url
name = tool_repository.name
owner = 'invalid_owner!?'
@@ -156,8 +153,8 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
if running_standalone:
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex', 'shed' ] )
xml_filename = self.get_filename( 'tool_dependencies.xml', filepath=dependency_path )
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
url = self.url
name = tool_repository.name
owner = tool_repository.user.username
@@ -176,8 +173,8 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
'''Generate and upload a valid tool_dependencies.xml file that specifies package_bwa_0_5_9_0100.'''
global running_standalone
if running_standalone:
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
dependency_path = self.generate_temp_path( 'test_0100', additional_paths=[ 'complex' ] )
xml_filename = self.get_filename( 'tool_dependencies.xml', filepath=dependency_path )
url = self.url
@@ -198,8 +195,8 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
'''Upload a new tool_dependencies.xml to the tool repository, and verify that the base repository displays the new changeset.'''
global running_standalone
if running_standalone:
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
previous_changeset = self.get_repository_tip( tool_repository )
old_tool_dependency = self.get_filename( os.path.join( 'bwa', 'complex', 'readme', 'tool_dependencies.xml' ) )
new_tool_dependency_path = self.generate_temp_path( 'test_1100', additional_paths=[ 'tool_dependency' ] )
@@ -224,8 +221,8 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
'''Verify installation of the repository with complex repository dependencies.'''
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
base_repository = test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( bwa_package_repository_name, common.test_user_1_name )
preview_strings_displayed = [ tool_repository.name, self.get_repository_tip( tool_repository ) ]
self.install_repository( bwa_base_repository_name,
common.test_user_1_name,
@@ -237,8 +234,8 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
def test_0050_verify_installed_repositories( self ):
'''Verify that the installed repositories are displayed properly.'''
base_repository = test_db_util.get_installed_repository_by_name_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_installed_repository_by_name_owner( bwa_package_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_installed_repository_by_name_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_installed_repository_by_name_owner( bwa_package_repository_name, common.test_user_1_name )
strings_displayed = [ 'bwa_base_repository_0100', 'user1', base_repository.installed_changeset_revision ]
strings_displayed.extend( [ 'package_bwa_0_5_9_0100', 'user1', tool_repository.installed_changeset_revision ] )
strings_displayed.append( self.url.replace( 'http://', '' ) )
@@ -260,8 +257,8 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
def test_0055_verify_complex_tool_dependency( self ):
'''Verify that the generated env.sh contains the right data.'''
base_repository = test_db_util.get_installed_repository_by_name_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_installed_repository_by_name_owner( bwa_package_repository_name, common.test_user_1_name )
base_repository = self.test_db_util.get_installed_repository_by_name_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_installed_repository_by_name_owner( bwa_package_repository_name, common.test_user_1_name )
env_sh_path = self.get_env_sh_path( tool_dependency_name='bwa',
tool_dependency_version='0.5.9',
repository=base_repository )
@@ -279,9 +276,9 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
Uninstall the repository that defines a tool dependency relationship on BWA 0.5.9, and verify
that this results in the compiled binary package also being removed.
'''
base_repository = test_db_util.get_installed_repository_by_name_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = test_db_util.get_installed_repository_by_name_owner( bwa_package_repository_name, common.test_user_1_name )
self.uninstall_repository( tool_repository, remove_from_disk=True )
base_repository = self.test_db_util.get_installed_repository_by_name_owner( bwa_base_repository_name, common.test_user_1_name )
tool_repository = self.test_db_util.get_installed_repository_by_name_owner( bwa_package_repository_name, common.test_user_1_name )
self.uninstall_repository( tool_repository, remove_from_disk=False )
env_sh_path = os.path.join( self.galaxy_tool_dependency_dir,
'bwa',
'0.5.9',
@@ -289,6 +286,5 @@ class TestInstallingComplexRepositoryDependencies( ShedTwillTestCase ):
tool_repository.name,
tool_repository.installed_changeset_revision,
'env.sh' )
if os.path.exists( env_sh_path ):
raise AssertionError( 'Path %s exists after uninstalling the repository that generated it.' % env_sh_path )
assert os.path.exists( env_sh_path ), 'Path %s does not exist after deactivating the repository that generated it.' % env_sh_path
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0110'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -13,7 +11,6 @@ category_name = 'Test 0110 Invalid Repository Dependencies'
category_desc = 'Test 0110 Invalid Repository Dependencies'
running_standalone = False
class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Testing emboss 5 with repository dependencies.'''
@@ -21,25 +18,25 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_category( self ):
"""Create a category for this test suite"""
self.create_category( name=category_name, description=category_desc )
def test_0010_create_emboss_datatypes_repository_and_upload_tarball( self ):
'''Create and populate the emboss_datatypes repository.'''
global running_standalone
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -57,17 +54,17 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
commit_message='Uploaded datatypes_conf.xml.',
strings_displayed=[],
strings_not_displayed=[] )
def test_0015_verify_datatypes_in_datatypes_repository( self ):
'''Verify that the emboss_datatypes repository contains datatype entries.'''
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
self.display_manage_repository_page( repository, strings_displayed=[ 'Datatypes', 'equicktandem', 'hennig86', 'vectorstrip' ] )
def test_0020_create_emboss_5_repository_and_upload_files( self ):
'''Create and populate the emboss_5_0110 repository.'''
global running_standalone
if running_standalone:
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=emboss_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -83,19 +80,19 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
commit_message='Uploaded emboss tool tarball.',
strings_displayed=[],
strings_not_displayed=[] )
def test_0025_generate_repository_dependency_with_invalid_url( self ):
'''Generate a repository dependency for emboss 5 with an invalid URL.'''
global running_standalone
if running_standalone:
dependency_path = self.generate_temp_path( 'test_0110', additional_paths=[ 'simple' ] )
dependency_path = self.generate_temp_path( 'test_1110', additional_paths=[ 'simple' ] )
xml_filename = self.get_filename( 'repository_dependencies.xml', filepath=dependency_path )
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
url = 'http://http://this is not an url!'
name = repository.name
owner = repository.user.username
changeset_revision = self.get_repository_tip( repository )
name = datatypes_repository.name
owner = datatypes_repository.user.username
changeset_revision = self.get_repository_tip( datatypes_repository )
strings_displayed = [ 'Repository dependencies are currently supported only within the same tool shed' ]
repository_tuple = ( url, name, owner, changeset_revision )
self.create_repository_dependency( repository=emboss_repository,
@@ -103,15 +100,15 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
repository_tuples=[ repository_tuple ],
strings_displayed=strings_displayed,
complex=False )
def test_0030_generate_repository_dependency_with_invalid_name( self ):
'''Generate a repository dependency for emboss 5 with an invalid name.'''
global running_standalone
if running_standalone:
dependency_path = self.generate_temp_path( 'test_0110', additional_paths=[ 'simple' ] )
dependency_path = self.generate_temp_path( 'test_1110', additional_paths=[ 'simple' ] )
xml_filename = self.get_filename( 'repository_dependencies.xml', filepath=dependency_path )
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
url = self.url
name = '!?invalid?!'
owner = repository.user.username
@@ -128,30 +125,30 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Generate a repository dependency for emboss 5 with an invalid owner.'''
global running_standalone
if running_standalone:
dependency_path = self.generate_temp_path( 'test_0110', additional_paths=[ 'simple' ] )
dependency_path = self.generate_temp_path( 'test_1110', additional_paths=[ 'simple' ] )
xml_filename = self.get_filename( 'repository_dependencies.xml', filepath=dependency_path )
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
url = self.url
name = repository.name
owner = '!?invalid?!'
changeset_revision = self.get_repository_tip( repository )
strings_displayed = [ 'because the owner is invalid' ]
strings_displayed = [ 'because the owner is invalid.' ]
repository_tuple = ( url, name, owner, changeset_revision )
self.create_repository_dependency( repository=emboss_repository,
filepath=dependency_path,
repository_tuples=[ repository_tuple ],
strings_displayed=strings_displayed,
complex=False )
def test_0040_generate_repository_dependency_with_invalid_changeset_revision( self ):
'''Generate a repository dependency for emboss 5 with an invalid changeset revision.'''
global running_standalone
if running_standalone:
dependency_path = self.generate_temp_path( 'test_0110', additional_paths=[ 'simple', 'invalid' ] )
dependency_path = self.generate_temp_path( 'test_1110', additional_paths=[ 'simple', 'invalid' ] )
xml_filename = self.get_filename( 'repository_dependencies.xml', filepath=dependency_path )
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_1_name )
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
url = self.url
name = repository.name
owner = repository.user.username
@@ -168,7 +165,7 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
'''Install the repository and verify that galaxy detects invalid repository dependencies.'''
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
repository = test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
preview_strings_displayed = [ 'emboss_0110', self.get_repository_tip( repository ), 'Ignoring repository dependency definition' ]
self.install_repository( emboss_repository_name,
common.test_user_1_name,
@@ -178,5 +175,5 @@ class TestBasicRepositoryDependencies( ShedTwillTestCase ):
preview_strings_displayed=preview_strings_displayed,
post_submit_strings_displayed=[ repository.name, repository.name, 'New' ],
includes_tools_for_display_in_tool_panel=True )
repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.display_installed_repository_manage_page( repository, strings_not_displayed=[ 'Repository dependencies' ] )
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'blast_datatypes_0120'
datatypes_repository_description = 'Galaxy applicable datatypes for BLAST'
datatypes_repository_long_description = 'Galaxy datatypes for the BLAST top hit descriptons tool'
@@ -18,8 +16,6 @@ Tool shed side:
2a) Check for appropriate strings.
3) Upload repository_dependencies.xml to blastxml_to_top_descr_0120 that defines a relationship to blast_datatypes_0120.
3a) Check for appropriate strings.
Galaxy side:
1) Install blastxml_to_top_descr_0120, with repository dependencies.
@@ -28,7 +24,6 @@ Galaxy side:
running_standalone = False
class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ):
def test_0000_initiate_users( self ):
@@ -39,19 +34,19 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ):
"""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_1_email )
test_user_2 = self.test_db_util.get_user( common.test_user_1_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_datatypes_repository( self ):
"""Create and populate the blast_datatypes_0120 repository"""
@@ -89,7 +84,7 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ):
the datatypes that are defined in datatypes_conf.xml.
'''
global repository_datatypes_count
repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
strings_displayed = [ 'BlastXml', 'BlastNucDb', 'BlastProtDb', 'application/xml', 'text/html', 'blastxml', 'blastdbn', 'blastdbp']
self.display_manage_repository_page( repository, strings_displayed=strings_displayed )
repository_datatypes_count = int( self.get_repository_datatypes_count( repository ) )
@@ -130,7 +125,7 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ):
We are at step 2a.
Check for appropriate strings, such as tool name, description, and version.
'''
repository = test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
strings_displayed = [ 'blastxml_to_top_descr_0120', 'BLAST top hit descriptions', 'Make a table from BLAST XML' ]
strings_displayed.extend( [ '0.0.1', 'Valid tools'] )
self.display_manage_repository_page( repository, strings_displayed=strings_displayed )
@@ -143,8 +138,8 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ):
'''
global running_standalone
if running_standalone:
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
dependency_xml_path = self.generate_temp_path( 'test_1120', additional_paths=[ 'dependencies' ] )
datatypes_tuple = ( self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip( datatypes_repository ) )
self.create_repository_dependency( repository=tool_repository, repository_tuples=[ datatypes_tuple ], filepath=dependency_xml_path )
@@ -155,8 +150,8 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ):
We are at step 3a.
Check the newly created repository dependency to ensure that it was defined and displays correctly.
'''
datatypes_repository = test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
tool_repository = test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_repository_by_name_and_owner( datatypes_repository_name, common.test_user_2_name )
tool_repository = self.test_db_util.get_repository_by_name_and_owner( tool_repository_name, common.test_user_1_name )
self.check_repository_dependency( tool_repository, datatypes_repository )
def test_0045_install_blastxml_to_top_descr( self ):
@@ -187,8 +182,8 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ):
'''
global repository_datatypes_count
global base_datatypes_count
tool_repository = test_db_util.get_installed_repository_by_name_owner( tool_repository_name, common.test_user_1_name )
datatypes_repository = test_db_util.get_installed_repository_by_name_owner( datatypes_repository_name, common.test_user_2_name )
tool_repository = self.test_db_util.get_installed_repository_by_name_owner( tool_repository_name, common.test_user_1_name )
datatypes_repository = self.test_db_util.get_installed_repository_by_name_owner( datatypes_repository_name, common.test_user_2_name )
current_datatypes = int( self.get_datatypes_count() )
expected_count = base_datatypes_count + repository_datatypes_count
assert current_datatypes == expected_count, 'Installing %s did not add new datatypes. Expected: %d. Found: %d' % \
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'bed_to_gff_0130'
repository_description = "Converter: BED to GFF"
repository_long_description = "Convert bed to gff"
@@ -14,7 +12,6 @@ category_description = 'Test 0130 Datatype Converters'
3) Make sure the bed_to_gff_converter tool is not displayed in the tool panel.
'''
class TestDatatypeConverters( ShedTwillTestCase ):
'''Test features related to datatype converters.'''
@@ -22,19 +19,19 @@ class TestDatatypeConverters( ShedTwillTestCase ):
"""Create necessary user accounts."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_bed_to_gff_repository( self ):
'''Create and populate bed_to_gff_0130.'''
@@ -68,7 +65,7 @@ class TestDatatypeConverters( ShedTwillTestCase ):
'''
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
preview_strings_displayed = [ repository.name, self.get_repository_tip( repository ) ]
strings_displayed = [ 'Choose the configuration file' ]
strings_not_displayed = [ 'tool panel section' ]
@@ -89,6 +86,6 @@ class TestDatatypeConverters( ShedTwillTestCase ):
The previous tool panel section for a tool is only recorded in the metadata when a repository is uninstalled,
so we have to uninstall it first, then verify that it was not assigned a tool panel section.
'''
repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
self.uninstall_repository( repository, remove_from_disk=True )
self.verify_installed_repository_no_tool_panel_section( repository )
@@ -1,5 +1,6 @@
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__)
@@ -24,7 +25,6 @@ Galaxy side:
src="/tool_runner/static/images/<id>/count_modes.png"
'''
class TestToolHelpImages( ShedTwillTestCase ):
'''Test features related to tool help images.'''
@@ -32,14 +32,14 @@ class TestToolHelpImages( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_htseq_count_repository( self ):
'''Create and populate htseq_count_0140.'''
@@ -74,7 +74,7 @@ class TestToolHelpImages( ShedTwillTestCase ):
'''
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 )
repository = self.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 )
@@ -91,7 +91,7 @@ class TestToolHelpImages( ShedTwillTestCase ):
'''
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 )
repository = self.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',
@@ -111,7 +111,7 @@ class TestToolHelpImages( ShedTwillTestCase ):
src="/admin_toolshed/static/images/<id>/count_modes.png"
'''
repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
image_path = 'src="/admin_toolshed/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
@@ -1,5 +1,4 @@
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__ )
@@ -31,6 +30,7 @@ Verify that convert_chars was installed first, contrary to the ordering that wou
running_standalone = False
class TestSimplePriorInstallation( ShedTwillTestCase ):
'''Test features related to datatype converters.'''
@@ -38,19 +38,19 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
"""Create necessary user accounts."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_convert_repository( self ):
'''Create and populate convert_chars_0150.'''
@@ -104,8 +104,8 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
<repository toolshed="self.url" name="convert_chars" owner="test" changeset_revision="<tip>" prior_installation_required="True" />
'''
global running_standalone
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
if running_standalone:
dependency_xml_path = self.generate_temp_path( 'test_1150', additional_paths=[ 'column' ] )
convert_tuple = ( self.url, convert_repository.name, convert_repository.user.username, self.get_repository_tip( convert_repository ) )
@@ -116,8 +116,8 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
def test_0020_verify_repository_dependency( self ):
'''Verify that the previously generated repositiory dependency displays correctly.'''
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
self.check_repository_dependency( repository=column_repository,
depends_on_repository=convert_repository,
depends_on_changeset_revision=None,
@@ -127,7 +127,7 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
'''Install column_maker_0150.'''
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
preview_strings_displayed = [ 'column_maker_0150', self.get_repository_tip( column_repository ) ]
strings_displayed = [ 'Choose the tool panel section' ]
self.install_repository( column_repository_name,
@@ -143,7 +143,7 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
def test_0030_verify_installation_order( self ):
'''Verify that convert_chars_0150 was installed before column_maker_0150.'''
column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name, common.test_user_1_name )
# Column maker was selected for installation, so convert chars should have been installed first, as reflected by the update_time field.
assert column_repository.update_time > convert_repository.update_time, 'Error: column_maker_0150 shows an earlier update time than convert_chars_0150'
@@ -1,5 +1,4 @@
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__ )
@@ -44,7 +43,6 @@ Verify that convert_chars was installed first, contrary to the ordering that wou
running_standalone = False
class TestSimplePriorInstallation( ShedTwillTestCase ):
'''Test features related to datatype converters.'''
@@ -52,19 +50,19 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
"""Create necessary user accounts."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_convert_repository( self ):
'''Create and populate convert_chars_0160.'''
@@ -138,9 +136,9 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
Each of the three repositories should depend on the other two, to make this as circular as possible.
'''
global running_standalone
filter_repository = test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
filter_repository = self.test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
filter_revision = self.get_repository_tip( filter_repository )
column_revision = self.get_repository_tip( column_repository )
convert_revision = self.get_repository_tip( convert_repository )
@@ -164,9 +162,9 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
def test_0025_verify_repository_dependency( self ):
'''Verify that the previously generated repositiory dependency displays correctly.'''
filter_repository = test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
filter_repository = self.test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_repository_by_name_and_owner( convert_repository_name, common.test_user_1_name )
self.check_repository_dependency( repository=column_repository,
depends_on_repository=convert_repository,
depends_on_changeset_revision=None,
@@ -196,7 +194,7 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
'''Install the filtering_0160 repository.'''
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
filter_repository = test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
filter_repository = self.test_db_util.get_repository_by_name_and_owner( filter_repository_name, common.test_user_1_name )
preview_strings_displayed = [ 'filtering_0160', self.get_repository_tip( filter_repository ) ]
strings_displayed = [ 'Choose the tool panel section' ]
self.install_repository( filter_repository_name,
@@ -212,25 +210,25 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
def test_0035_verify_installation_order( self ):
'''Verify that convert_chars_0160 and column_maker_0160 were installed before filtering_0160.'''
filter_repository = test_db_util.get_installed_repository_by_name_owner( filter_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name, common.test_user_1_name )
filter_repository = self.test_db_util.get_installed_repository_by_name_owner( filter_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name, common.test_user_1_name )
# Filtering was selected for installation, so convert chars and column maker should have been installed first.
assert filter_repository.update_time > convert_repository.update_time, 'Error: convert_chars_0160 shows a later update time than filtering_0160'
assert filter_repository.update_time > column_repository.update_time, 'Error: column_maker_0160 shows a later update time than filtering_0160'
def test_0040_uninstall_all_repositories( self ):
'''Uninstall convert_chars_0160, column_maker_0160, and filtering_0160.'''
filter_repository = test_db_util.get_installed_repository_by_name_owner( filter_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name, common.test_user_1_name )
self.uninstall_repository( filter_repository, remove_from_disk=True )
self.uninstall_repository( column_repository, remove_from_disk=True )
self.uninstall_repository( convert_repository, remove_from_disk=True )
filter_repository = self.test_db_util.get_installed_repository_by_name_owner( filter_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name, common.test_user_1_name )
self.uninstall_repository( filter_repository, remove_from_disk=False )
self.uninstall_repository( column_repository, remove_from_disk=False )
self.uninstall_repository( convert_repository, remove_from_disk=False )
def test_0045_reinstall_filter_repository( self ):
'''Reinstall the filtering_0160 repository.'''
filter_repository = test_db_util.get_installed_repository_by_name_owner( filter_repository_name, common.test_user_1_name )
filter_repository = self.test_db_util.get_installed_repository_by_name_owner( filter_repository_name, common.test_user_1_name )
self.reinstall_repository( filter_repository )
strings_displayed = [ 'filtering_0160',
"Galaxy's filtering tool for test 0160",
@@ -244,10 +242,12 @@ class TestSimplePriorInstallation( ShedTwillTestCase ):
def test_0050_verify_reinstallation_order( self ):
'''Verify that convert_chars_0160 and column_maker_0160 were reinstalled before filtering_0160.'''
filter_repository = test_db_util.get_installed_repository_by_name_owner( filter_repository_name, common.test_user_1_name )
column_repository = test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = test_db_util.get_installed_repository_by_name_owner( convert_repository_name, common.test_user_1_name )
filter_repository = self.test_db_util.get_installed_repository_by_name_owner( filter_repository_name, common.test_user_1_name )
column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name, common.test_user_1_name )
convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name, common.test_user_1_name )
# Filtering was selected for reinstallation, so convert chars and column maker should have been installed first.
assert filter_repository.update_time > convert_repository.update_time, 'Error: convert_chars_0160 shows a later update time than filtering_0160'
assert filter_repository.update_time > column_repository.update_time, 'Error: column_maker_0160 shows a later update time than filtering_0160'
for repo in [ convert_repository, column_repository, filter_repository ]:
self.test_db_util.ga_session.refresh( repo )
assert filter_repository.update_time > convert_repository.update_time, 'Prior installed convert_chars_0160 shows a later update time than filtering_0160'
assert filter_repository.update_time > column_repository.update_time, 'Prior installed column_maker_0160 shows a later update time than filtering_0160'
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
matplotlib_repository_name = 'package_matplotlib_1_2_0170'
matplotlib_repository_description = "Contains a tool dependency definition that downloads and compiles version 1.2.x of the the python matplotlib package."
matplotlib_repository_long_description = "This repository is intended to be defined as a complex repository dependency within a separate repository."
@@ -22,7 +20,6 @@ category_description = 'Test 0170 Prior Installation Complex Dependencies'
running_standalone = False
class TestComplexPriorInstallation( ShedTwillTestCase ):
'''Test features related to datatype converters.'''
@@ -30,14 +27,14 @@ class TestComplexPriorInstallation( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_matplotlib_repository( self ):
'''Create and populate the package_matplotlib_1_2_0170 repository.'''
@@ -101,8 +98,8 @@ class TestComplexPriorInstallation( ShedTwillTestCase ):
and installed first.
'''
global running_standalone
numpy_repository = test_db_util.get_repository_by_name_and_owner( numpy_repository_name, common.test_user_1_name )
matplotlib_repository = test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
numpy_repository = self.test_db_util.get_repository_by_name_and_owner( numpy_repository_name, common.test_user_1_name )
matplotlib_repository = self.test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
# Generate the new dependency XML. Normally, the create_repository_dependency method would be used for this, but
# it replaces any existing tool or repository dependency XML file with the generated contents. This is undesirable
# in this case, because matplotlib already has an additional tool dependency definition that we don't want to
@@ -139,8 +136,8 @@ class TestComplexPriorInstallation( ShedTwillTestCase ):
'Inhherited' in this case means that matplotlib should show a package tool dependency on numpy version 1.7, and a repository
dependency on the latest revision of package_numpy_1_7_0170.
'''
numpy_repository = test_db_util.get_repository_by_name_and_owner( numpy_repository_name, common.test_user_1_name )
matplotlib_repository = test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
numpy_repository = self.test_db_util.get_repository_by_name_and_owner( numpy_repository_name, common.test_user_1_name )
matplotlib_repository = self.test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
changeset_revision = self.get_repository_tip( numpy_repository )
self.check_repository_dependency( matplotlib_repository, depends_on_repository=numpy_repository )
self.display_manage_repository_page( matplotlib_repository, strings_displayed=[ 'numpy', '1.7', 'package', changeset_revision ] )
@@ -152,7 +149,7 @@ class TestComplexPriorInstallation( ShedTwillTestCase ):
'''
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
matplotlib_repository = test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
matplotlib_repository = self.test_db_util.get_repository_by_name_and_owner( matplotlib_repository_name, common.test_user_1_name )
preview_strings_displayed = [ 'package_matplotlib_1_2_0170', self.get_repository_tip( matplotlib_repository ) ]
strings_displayed = [ 'Choose the tool panel section' ]
self.install_repository( matplotlib_repository_name,
@@ -174,8 +171,8 @@ class TestComplexPriorInstallation( ShedTwillTestCase ):
prior_installation_required attribute set. Confirm that this resulted in package_numpy_1_7_0170 being installed before
package_matplotlib_1_2_0170.
'''
matplotlib_repository = test_db_util.get_installed_repository_by_name_owner( matplotlib_repository_name, common.test_user_1_name )
numpy_repository = test_db_util.get_installed_repository_by_name_owner( numpy_repository_name, common.test_user_1_name )
matplotlib_repository = self.test_db_util.get_installed_repository_by_name_owner( matplotlib_repository_name, common.test_user_1_name )
numpy_repository = self.test_db_util.get_installed_repository_by_name_owner( numpy_repository_name, common.test_user_1_name )
assert matplotlib_repository.update_time > numpy_repository.update_time, \
'Error: package_numpy_1_7_0170 shows a later update time than package_matplotlib_1_2_0170'
@@ -1,5 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
'''Test uninstalling and reinstalling a basic repository.'''
@@ -7,19 +6,19 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
"""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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
def test_0005_ensure_repositories_and_categories_exist( self ):
'''Create the 0000 category and upload the filtering repository to the tool shed, if necessary.'''
category = self.create_category( name='Test 0000 Basic Repository Features 1', description='Test 0000 Basic Repository Features 1' )
@@ -76,7 +75,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
common.test_user_1_name,
'Test 0000 Basic Repository Features 1',
new_tool_panel_section_label='test_1000' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
strings_displayed = [ 'filtering_0000',
"Galaxy's filtering tool for test 0000",
'user1',
@@ -85,7 +84,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
self.display_galaxy_browse_repositories_page( strings_displayed=strings_displayed )
def test_0015_uninstall_filtering_repository( self ):
'''Uninstall the filtering repository.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
self.uninstall_repository( installed_repository, remove_from_disk=True )
strings_not_displayed = [ 'filtering_0000',
"Galaxy's filtering tool for test 0000",
@@ -93,7 +92,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed )
def test_0020_reinstall_filtering_repository( self ):
'''Reinstall the filtering repository.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
self.reinstall_repository( installed_repository )
strings_displayed = [ 'filtering_0000',
"Galaxy's filtering tool for test 0000",
@@ -106,7 +105,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
self.verify_tool_metadata_for_installed_repository( installed_repository )
def test_0025_deactivate_filtering_repository( self ):
'''Deactivate the filtering repository without removing it from disk.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
self.uninstall_repository( installed_repository, remove_from_disk=False )
strings_not_displayed = [ 'filtering_0000',
"Galaxy's filtering tool for test 0000",
@@ -114,7 +113,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed )
def test_0030_reactivate_filtering_repository( self ):
'''Reactivate the filtering repository and verify that it now shows up in the list of installed repositories.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name )
self.reactivate_repository( installed_repository )
strings_displayed = [ 'filtering_0000',
"Galaxy's filtering tool for test 0000",
@@ -1,5 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
'''Test uninstalling and reinstalling a repository with tool dependencies.'''
@@ -7,19 +6,19 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
"""Create necessary user accounts."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_galaxy_user( common.admin_email )
admin_user = self.test_db_util.get_galaxy_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_galaxy_private_role( admin_user )
admin_user_private_role = self.test_db_util.get_galaxy_private_role( admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_ensure_repositories_and_categories_exist( self ):
'''Create the 0010 category and upload the freebayes repository to the tool shed, if necessary.'''
category = self.create_category( name='Test 0010 Repository With Tool Dependencies', description='Tests for a repository with tool dependencies.' )
@@ -95,7 +94,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
'Test 0010 Repository With Tool Dependencies',
strings_displayed=strings_displayed,
new_tool_panel_section_label='test_1210' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
strings_displayed = [ 'freebayes_0010',
"Galaxy's freebayes tool",
'user1',
@@ -104,13 +103,13 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
self.display_galaxy_browse_repositories_page( strings_displayed=strings_displayed )
def test_0015_uninstall_freebayes_repository( self ):
'''Uninstall the freebayes repository.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
self.uninstall_repository( installed_repository, remove_from_disk=True )
strings_not_displayed = [ installed_repository.name, installed_repository.installed_changeset_revision ]
self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed )
def test_0020_reinstall_freebayes_repository( self ):
'''Reinstall the freebayes repository.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
self.reinstall_repository( installed_repository )
strings_displayed = [ 'freebayes_0010',
"Galaxy's freebayes tool",
@@ -123,13 +122,13 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
self.verify_tool_metadata_for_installed_repository( installed_repository )
def test_0025_deactivate_freebayes_repository( self ):
'''Deactivate the freebayes repository without removing it from disk.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
self.uninstall_repository( installed_repository, remove_from_disk=False )
strings_not_displayed = [ installed_repository.name, installed_repository.installed_changeset_revision ]
self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed )
def test_0030_reactivate_freebayes_repository( self ):
'''Reactivate the freebayes repository and verify that it now shows up in the list of installed repositories.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'freebayes_0010', common.test_user_1_name )
self.reactivate_repository( installed_repository )
strings_displayed = [ 'freebayes_0010',
"Galaxy's freebayes tool",
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0020'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -13,7 +11,6 @@ base_datatypes_count = 0
repository_datatypes_count = 0
running_standalone = False
class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
'''Test uninstalling and reinstalling a repository with tool dependencies.'''
@@ -21,19 +18,19 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
"""Create necessary user accounts."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_ensure_repositories_and_categories_exist( self ):
'''Create the 0020 category and upload the emboss repository to the tool shed, if necessary.'''
@@ -92,7 +89,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
'Test 0020 Basic Repository Dependencies',
strings_displayed=strings_displayed,
new_tool_panel_section_label='test_1210' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
strings_displayed = [ 'emboss_0020',
'Galaxy wrappers for Emboss version 5.0.0 tools',
'user1',
@@ -110,14 +107,14 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
def test_0015_uninstall_emboss_repository( self ):
'''Uninstall the emboss repository.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.uninstall_repository( installed_repository, remove_from_disk=True )
strings_not_displayed = [ installed_repository.name, installed_repository.installed_changeset_revision ]
self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed )
def test_0020_reinstall_emboss_repository( self ):
'''Reinstall the emboss repository.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.reinstall_repository( installed_repository )
strings_displayed = [ 'emboss_0020',
'Galaxy wrappers for Emboss version 5.0.0 tools',
@@ -131,7 +128,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
def test_0025_deactivate_emboss_repository( self ):
'''Deactivate the emboss repository without removing it from disk.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.uninstall_repository( installed_repository, remove_from_disk=False )
strings_not_displayed = [ 'emboss_0020',
installed_repository.installed_changeset_revision ]
@@ -139,7 +136,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
def test_0030_reactivate_emboss_repository( self ):
'''Reactivate the emboss repository and verify that it now shows up in the list of installed repositories.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.reactivate_repository( installed_repository )
strings_displayed = [ 'emboss_0020',
'Galaxy wrappers for Emboss version 5.0.0 tools',
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0030'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -15,7 +13,6 @@ base_datatypes_count = 0
repository_datatypes_count = 0
running_standalone = False
class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
'''Test uninstalling and reinstalling a repository with repository dependency revisions.'''
@@ -23,19 +20,19 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
"""Create necessary user accounts."""
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_galaxy_user( common.admin_email )
admin_user = self.test_db_util.get_galaxy_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_galaxy_private_role( admin_user )
admin_user_private_role = self.test_db_util.get_galaxy_private_role( admin_user )
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_ensure_repositories_and_categories_exist( self ):
'''Create the 0030 category and upload the emboss repository to the tool shed, if necessary.'''
@@ -124,7 +121,7 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
'Test 0030 Repository Dependency Revisions',
strings_displayed=strings_displayed,
new_tool_panel_section_label='test_1210' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
strings_displayed = [ 'emboss_0030',
'Galaxy wrappers for Emboss version 5.0.0 tools',
'user1',
@@ -146,14 +143,14 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
def test_0015_uninstall_emboss_repository( self ):
'''Uninstall the emboss repository.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.uninstall_repository( installed_repository, remove_from_disk=True )
strings_not_displayed = [ installed_repository.installed_changeset_revision ]
self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed )
def test_0020_reinstall_emboss_repository( self ):
'''Reinstall the emboss repository.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.reinstall_repository( installed_repository )
strings_displayed = [ 'emboss_0030',
'Galaxy wrappers for Emboss version 5.0.0 tools',
@@ -167,14 +164,14 @@ class UninstallingAndReinstallingRepositories( ShedTwillTestCase ):
def test_0025_deactivate_emboss_repository( self ):
'''Deactivate the emboss repository without removing it from disk.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.uninstall_repository( installed_repository, remove_from_disk=False )
strings_not_displayed = [ installed_repository.installed_changeset_revision ]
self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed )
def test_0030_reactivate_emboss_repository( self ):
'''Reactivate the emboss repository and verify that it now shows up in the list of installed repositories.'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( emboss_repository_name, common.test_user_1_name )
self.reactivate_repository( installed_repository )
strings_displayed = [ 'emboss_0030',
'Galaxy wrappers for Emboss version 5.0.0 tools',
@@ -1,6 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
datatypes_repository_name = 'emboss_datatypes_0020'
datatypes_repository_description = "Galaxy applicable data formats used by Emboss tools."
datatypes_repository_long_description = "Galaxy applicable data formats used by Emboss tools. This repository contains no tools."
@@ -13,20 +11,21 @@ base_datatypes_count = 0
repository_datatypes_count = 0
running_standalone = False
class TestResetInstalledRepositoryMetadata( ShedTwillTestCase ):
'''Verify that the "Reset selected metadata" feature works.'''
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
def test_0005_create_repositories_and_categories( self ):
'''Ensure that the necessary categories and repositories exist for these tests.'''
global repository_datatypes_count
@@ -244,8 +243,8 @@ class TestResetInstalledRepositoryMetadata( ShedTwillTestCase ):
commit_message='Uploaded filtering 1.1.0 tarball.',
strings_displayed=[],
strings_not_displayed=[] )
freebayes_repository = test_db_util.get_repository_by_name_and_owner( 'freebayes_0040', common.test_user_1_name )
filtering_repository = test_db_util.get_repository_by_name_and_owner( 'filtering_0040', common.test_user_1_name )
freebayes_repository = self.test_db_util.get_repository_by_name_and_owner( 'freebayes_0040', common.test_user_1_name )
filtering_repository = self.test_db_util.get_repository_by_name_and_owner( 'filtering_0040', common.test_user_1_name )
repository_dependencies_path = self.generate_temp_path( 'test_0340', additional_paths=[ 'dependencies' ] )
dependency_tuple = ( self.url, freebayes_repository.name, freebayes_repository.user.username, self.get_repository_tip( freebayes_repository ) )
self.create_repository_dependency( repository=filtering_repository, repository_tuples=[ dependency_tuple ], filepath=repository_dependencies_path )
@@ -393,12 +392,12 @@ class TestResetInstalledRepositoryMetadata( ShedTwillTestCase ):
def test_0015_reset_metadata_on_all_repositories( self ):
'''Reset metadata on all repositories, then verify that it has not changed.'''
repository_metadata = dict()
repositories = test_db_util.get_all_installed_repositories( actually_installed=True )
repositories = self.test_db_util.get_all_installed_repositories( actually_installed=True )
for repository in repositories:
repository_metadata[ self.security.encode_id( repository.id ) ] = repository.metadata
self.reset_metadata_on_selected_installed_repositories( repository_metadata.keys() )
for repository in repositories:
test_db_util.ga_refresh( repository )
self.test_db_util.ga_refresh( repository )
old_metadata = repository_metadata[ self.security.encode_id( repository.id ) ]
# When a repository with tools to be displayed in a tool panel section is deactivated and reinstalled,
# the tool panel section remains in the repository metadata. However, when the repository's metadata
@@ -1,5 +1,4 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
class TestToolMigrationStages( ShedTwillTestCase ):
@@ -9,14 +8,14 @@ class TestToolMigrationStages( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.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.'''
@@ -1,5 +1,6 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
import logging, time
log = logging.getLogger(__name__)
@@ -17,7 +18,6 @@ category_description = 'Functional test suite to test the update manager.'
4. Verify that the browse page now shows an update available.
'''
class TestUpdateManager( ShedTwillTestCase ):
'''Test the Galaxy update manager.'''
@@ -29,19 +29,19 @@ class TestUpdateManager( ShedTwillTestCase ):
"""
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
def test_0005_create_filtering_repository( self ):
'''Create and populate the filtering_1410 repository.'''
@@ -79,7 +79,7 @@ class TestUpdateManager( ShedTwillTestCase ):
common.test_user_1_name,
category_name,
new_tool_panel_section_label='test_1410' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_1410', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filtering_1410', common.test_user_1_name )
strings_displayed = [ 'filtering_1410',
"Galaxy's filtering tool",
'user1',
@@ -100,7 +100,7 @@ class TestUpdateManager( ShedTwillTestCase ):
'''
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.upload_file( repository,
filename='readme.txt',
filepath=None,
@@ -121,7 +121,7 @@ class TestUpdateManager( ShedTwillTestCase ):
time.sleep( 3 )
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
repository = test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_repository_by_name_and_owner( repository_name, common.test_user_1_name )
self.update_tool_shed_status()
ok_icon = '/static/june_2007_style/blue/ok_small.png'
ok_title = 'This is the latest installable revision of this repository'
@@ -1,5 +1,4 @@
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__ )
@@ -51,6 +50,7 @@ Repository dependency structure should be as follows:
9. Verify that the env.sh file for package_rdkit_2012_12_1420 also defines the variables inherited from package_numpy_1_7_1420 and package_boost_1_53_1420.
'''
class TestEnvironmentInheritance( ShedTwillTestCase ):
'''Test referencing environment variables that were defined in a separate tool dependency.'''
@@ -58,20 +58,20 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.create_category( name=category_name, description=category_description )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
def test_0005_create_lapack_repository( self ):
'''Create and populate package_lapack_3_4_1420.'''
@@ -81,7 +81,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local
filesystem and install them into the path specified by $INSTALL_DIR.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=package_lapack_repository_name,
description=package_lapack_repository_description,
long_description=package_lapack_repository_long_description,
@@ -115,7 +115,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local
filesystem and install them into the path specified by $INSTALL_DIR.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=package_atlas_repository_name,
description=package_atlas_repository_description,
long_description=package_atlas_repository_long_description,
@@ -149,7 +149,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local
filesystem and install them into the path specified by $INSTALL_DIR.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=package_bzlib_repository_name,
description=package_bzlib_repository_description,
long_description=package_bzlib_repository_long_description,
@@ -183,7 +183,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local
filesystem and install them into the path specified by $INSTALL_DIR.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=package_boost_repository_name,
description=package_boost_repository_description,
long_description=package_boost_repository_long_description,
@@ -217,7 +217,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local
filesystem and install them into the path specified by $INSTALL_DIR.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=package_numpy_repository_name,
description=package_numpy_repository_description,
long_description=package_numpy_repository_long_description,
@@ -251,7 +251,7 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local
filesystem and install them into the path specified by $INSTALL_DIR.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=package_rdkit_repository_name,
description=package_rdkit_repository_description,
long_description=package_rdkit_repository_long_description,
@@ -303,9 +303,9 @@ class TestEnvironmentInheritance( ShedTwillTestCase ):
This is step 5 - Verify that the env.sh file for package_rdkit_2012_12_1420 also defines the variables inherited from package_numpy_1_7_1420
and package_boost_1_53_1420. Test for the numpy and boost tool dependency paths.
'''
package_rdkit_repository = test_db_util.get_installed_repository_by_name_owner( 'package_rdkit_2012_12_1420', common.test_user_1_name )
package_numpy_repository = test_db_util.get_installed_repository_by_name_owner( 'package_numpy_1_7_1420', common.test_user_1_name )
package_boost_repository = test_db_util.get_installed_repository_by_name_owner( 'package_boost_1_53_1420', common.test_user_1_name )
package_rdkit_repository = self.test_db_util.get_installed_repository_by_name_owner( 'package_rdkit_2012_12_1420', common.test_user_1_name )
package_numpy_repository = self.test_db_util.get_installed_repository_by_name_owner( 'package_numpy_1_7_1420', common.test_user_1_name )
package_boost_repository = self.test_db_util.get_installed_repository_by_name_owner( 'package_boost_1_53_1420', common.test_user_1_name )
rdkit_env_sh = self.get_env_sh_path( tool_dependency_name='rdkit',
tool_dependency_version='2012_12_1',
repository=package_rdkit_repository )
@@ -1,5 +1,4 @@
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__ )
@@ -34,6 +33,7 @@ In Galaxy:
4) Make sure the filter_1430 repository is reinstalled and the tool is loaded into the tool panel in the same section specified in step 1.
'''
class TestRepairRepository( ShedTwillTestCase ):
'''Test repairing an installed repository.'''
@@ -41,20 +41,20 @@ class TestRepairRepository( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.create_category( name=category_name, description=category_description )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
def test_0005_create_filter_repository( self ):
'''Create and populate the filter_1430 repository.'''
@@ -63,7 +63,7 @@ class TestRepairRepository( ShedTwillTestCase ):
This repository will be depended on by the column_1430 repository.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=filter_repository_name,
description=filter_repository_description,
long_description=filter_repository_long_description,
@@ -87,7 +87,7 @@ class TestRepairRepository( ShedTwillTestCase ):
This repository will depend on the filter_1430 repository.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=column_repository_name,
description=column_repository_description,
long_description=column_repository_long_description,
@@ -110,8 +110,8 @@ class TestRepairRepository( ShedTwillTestCase ):
This is step 3 - Upload a repository_dependencies.xml file to the column_1430 repository that creates a repository
dependency on the filter_1430 repository.
'''
column_repository = test_db_util.get_repository_by_name_and_owner( 'column_1430', common.test_user_1_name )
filter_repository = test_db_util.get_repository_by_name_and_owner( 'filter_1430', common.test_user_1_name )
column_repository = self.test_db_util.get_repository_by_name_and_owner( 'column_1430', common.test_user_1_name )
filter_repository = self.test_db_util.get_repository_by_name_and_owner( 'filter_1430', common.test_user_1_name )
tool_shed_url = self.url
name = filter_repository.name
owner = filter_repository.user.username
@@ -143,8 +143,13 @@ class TestRepairRepository( ShedTwillTestCase ):
'''
This is step 2 - Uninstall the filter_1430 repository.
'''
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filter_1430', common.test_user_1_name )
self.uninstall_repository( installed_repository, remove_from_disk=True )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filter_1430', common.test_user_1_name )
strings_displayed = [ 'This repository cannot be uninstalled' ]
strings_not_displayed = [ 'Check to uninstall' ]
self.uninstall_repository( installed_repository,
remove_from_disk=False,
strings_displayed=strings_displayed,
strings_not_displayed=strings_not_displayed )
strings_not_displayed = [ 'filter_1430',
"Galaxy's filter tool for test 1430",
installed_repository.installed_changeset_revision ]
@@ -155,7 +160,7 @@ class TestRepairRepository( ShedTwillTestCase ):
'''
This is step 3 - Repair the column_1430 repository.
'''
column_repository = test_db_util.get_installed_repository_by_name_owner( 'column_1430', common.test_user_1_name )
column_repository = self.test_db_util.get_installed_repository_by_name_owner( 'column_1430', common.test_user_1_name )
self.repair_installed_repository( column_repository )
def test_0035_verify_tool_panel_section( self ):
@@ -164,17 +169,10 @@ class TestRepairRepository( ShedTwillTestCase ):
This is step 4 - Make sure the filter_1430 repository is reinstalled and the tool is loaded into the tool panel
in the same section specified in step 1.
'''
filter_repository = test_db_util.get_installed_repository_by_name_owner( 'filter_1430', common.test_user_1_name )
filter_repository = self.test_db_util.get_installed_repository_by_name_owner( 'filter_1430', common.test_user_1_name )
strings_displayed = [ 'filter_1430',
"Galaxy's filter tool for test 1430",
filter_repository.installed_changeset_revision ]
self.display_galaxy_browse_repositories_page( strings_displayed=strings_displayed )
# Uninstall the filter repository again, so that the tool panel section metadata gets populated.
self.uninstall_repository( filter_repository, remove_from_disk=True )
test_db_util.ga_refresh( filter_repository )
tool_panel_section_metadata = filter_repository.metadata[ 'tool_panel_section' ]
for tool_id in tool_panel_section_metadata:
for panel_section in tool_panel_section_metadata[ tool_id ]:
assert panel_section[ 'name' ] == 'repair', 'Tool %s in tool panel section %s after repair, expected %s.' % \
( tool_id, panel_section[ 'name' ], 'repair' )
self.check_galaxy_repository_tool_panel_section( repository=filter_repository, expected_tool_panel_section='repair' )
@@ -1,5 +1,4 @@
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__ )
@@ -24,7 +23,6 @@ tool_repository_long_description = '%s: %s' % ( tool_repository_name, tool_repos
'''
class TestMissingEnvSh( ShedTwillTestCase ):
'''Test installing a repository that should create an env.sh file, but does not.'''
@@ -32,20 +30,20 @@ class TestMissingEnvSh( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.create_category( name=category_name, description=category_description )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
def test_0005_create_package_repository( self ):
'''Create and populate package_env_sh_1_0_1440.'''
@@ -55,7 +53,7 @@ class TestMissingEnvSh( ShedTwillTestCase ):
Create and populate a repository that is designed to fail a tool dependency installation. This tool dependency should
also define one or more environment variables.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=package_repository_name,
description=package_repository_description,
long_description=package_repository_long_description,
@@ -79,7 +77,7 @@ class TestMissingEnvSh( ShedTwillTestCase ):
This is step 2 - Create a repository that defines a complex repository dependency on the repository created in
step 1, with prior_install_required and set_environment_for_install.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=tool_repository_name,
description=tool_repository_description,
long_description=tool_repository_long_description,
@@ -123,7 +121,7 @@ class TestMissingEnvSh( ShedTwillTestCase ):
def test_0020_verify_missing_tool_dependency( self ):
'''Verify that the filter_1440 repository is installed and missing tool dependencies.'''
repository = test_db_util.get_installed_repository_by_name_owner( 'filter_1440', common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( 'filter_1440', common.test_user_1_name )
strings_displayed = [ 'Missing tool dependencies' ]
self.display_installed_repository_manage_page( repository, strings_displayed=strings_displayed )
assert len( repository.missing_tool_dependencies ) == 1, 'filter_1440 should have a missing tool dependency, but does not.'
@@ -1,14 +1,10 @@
from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os
import tool_shed.base.test_db_util as test_db_util
repository_name = 'proteomics_datatypes_1450'
repository_description = "Proteomics datatypes"
repository_long_description = "Datatypes used in proteomics"
category_name = 'Test 1450 Datatype Sniffers'
category_description = 'Test 1450 - Installing Datatype Sniffers'
'''
1. Get a count of datatypes and sniffers.
2. Install proteomics_datatypes_1450.
@@ -23,7 +19,6 @@ base_datatypes_count = 0
repository_datatypes_count = 0
base_sniffers_count = 0
class TestInstallDatatypesSniffers( ShedTwillTestCase ):
'''Test installing a repository that defines datatypes and datatype sniffers.'''
@@ -32,19 +27,19 @@ class TestInstallDatatypesSniffers( ShedTwillTestCase ):
global base_datatypes_count
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 )
test_user_1 = self.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 )
test_user_1_private_role = self.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 )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.galaxy_logout()
self.galaxy_login( email=common.admin_email, username=common.admin_username )
galaxy_admin_user = test_db_util.get_galaxy_user( common.admin_email )
galaxy_admin_user = self.test_db_util.get_galaxy_user( common.admin_email )
assert galaxy_admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email
galaxy_admin_user_private_role = test_db_util.get_galaxy_private_role( galaxy_admin_user )
galaxy_admin_user_private_role = self.test_db_util.get_galaxy_private_role( galaxy_admin_user )
base_datatypes_count = self.get_datatypes_count()
base_sniffers_count = self.get_sniffers_count()
@@ -91,7 +86,7 @@ class TestInstallDatatypesSniffers( ShedTwillTestCase ):
category_name,
strings_displayed=strings_displayed,
new_tool_panel_section_label='test_1450' )
installed_repository = test_db_util.get_installed_repository_by_name_owner( 'proteomics_datatypes_1450', common.test_user_1_name )
installed_repository = self.test_db_util.get_installed_repository_by_name_owner( 'proteomics_datatypes_1450', common.test_user_1_name )
strings_displayed = [ 'user1',
self.url.replace( 'http://', '' ),
installed_repository.installed_changeset_revision ]
@@ -120,7 +115,7 @@ class TestInstallDatatypesSniffers( ShedTwillTestCase ):
Deactivate proteomics_datatypes_1450 and check that the in-memory datatypes and sniffers match the base values
determined in the first step.
'''
repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
global repository_datatypes_count
global base_datatypes_count
global base_sniffers_count
@@ -138,7 +133,7 @@ class TestInstallDatatypesSniffers( ShedTwillTestCase ):
This is step 5 - Reactivate proteomics_datatypes, verify that the count of datatypes and sniffers has been
increased by the contents of the repository.
'''
repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
global repository_datatypes_count
global base_datatypes_count
global base_sniffers_count
@@ -159,7 +154,7 @@ class TestInstallDatatypesSniffers( ShedTwillTestCase ):
Uninstall proteomics_datatypes_1450 and check that the in-memory datatypes and sniffers match the base values
determined in the first step.
'''
repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
global repository_datatypes_count
global base_datatypes_count
self.uninstall_repository( repository, remove_from_disk=True )
@@ -176,7 +171,7 @@ class TestInstallDatatypesSniffers( ShedTwillTestCase ):
This is step 7 - Reinstall proteomics_datatypes_1450, verify that the count of datatypes and sniffers has been
increased by the contents of the repository.
'''
repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name )
global repository_datatypes_count
global base_datatypes_count
self.reinstall_repository( repository )
@@ -187,5 +182,3 @@ class TestInstallDatatypesSniffers( ShedTwillTestCase ):
assert current_sniffers > base_sniffers_count, \
'Sniffer count after reinstalling proteomics_datatypes_1450 is %d, which is not greater than %d' % \
( current_sniffers, base_sniffers_count )
@@ -1,5 +1,4 @@
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__ )
@@ -23,6 +22,7 @@ data_manager_tar_file = '1460_files/data_manager_files/test_data_manager.tar'
#TODO: Allow testing actual Execution of installed Data Manager Tool.
class TestDataManagers( ShedTwillTestCase ):
'''Test installing a repository containing a Data Manager.'''
@@ -30,20 +30,20 @@ class TestDataManagers( ShedTwillTestCase ):
"""Create necessary user accounts and login as an admin user."""
self.logout()
self.login( email=common.admin_email, username=common.admin_username )
admin_user = test_db_util.get_user( common.admin_email )
admin_user = self.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 )
admin_user_private_role = self.test_db_util.get_private_role( admin_user )
self.create_category( name=category_name, description=category_description )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
test_user_2 = test_db_util.get_user( common.test_user_2_email )
test_user_2 = self.test_db_util.get_user( common.test_user_2_email )
assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email
test_user_2_private_role = test_db_util.get_private_role( test_user_2 )
test_user_2_private_role = self.test_db_util.get_private_role( test_user_2 )
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 )
test_user_1 = self.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' % common.test_user_1_email
test_user_1_private_role = test_db_util.get_private_role( test_user_1 )
test_user_1_private_role = self.test_db_util.get_private_role( test_user_1 )
def test_0010_create_data_manager_repository( self ):
'''Create and populate data_manager_1460.'''
@@ -52,7 +52,7 @@ class TestDataManagers( ShedTwillTestCase ):
Create and populate a repository that contains a Data manager.
'''
category = test_db_util.get_category_by_name( category_name )
category = self.test_db_util.get_category_by_name( category_name )
repository = self.get_or_create_repository( name=data_manager_repository_name,
description=data_manager_repository_description,
long_description=data_manager_repository_long_description,
@@ -87,12 +87,10 @@ class TestDataManagers( ShedTwillTestCase ):
def test_0030_verify_data_manager_tool( self ):
'''Verify that the data_manager_1460 repository is installed and Data Manager tool appears in list in Galaxy.'''
repository = test_db_util.get_installed_repository_by_name_owner( data_manager_repository_name, common.test_user_1_name )
repository = self.test_db_util.get_installed_repository_by_name_owner( data_manager_repository_name, common.test_user_1_name )
strings_displayed = [ 'Access managed data by job' ]
self.display_installed_manage_data_manager_page( repository, data_manager_names=data_manager_name, strings_displayed=strings_displayed )
def test_0040_verify_data_manager_data_table( self ):
'''Verify that the installed repository populated shed_tool_data_table.xml and the sample files.'''
self.verify_installed_repository_data_table_entries( required_data_table_entries=[ 'data_manager_test_data_table' ] )
+25 -7
View File
@@ -1,6 +1,25 @@
#!/usr/bin/env python
import os, sys, shutil, tempfile, re, string, multiprocessing
import os
import sys
import shutil
import tempfile
import re
import string
import multiprocessing
import unittest
import time
import sys
import threading
import random
import httplib
import socket
import urllib
import atexit
import logging
import os
import sys
import tempfile
# Assume we are run from the galaxy root directory, add lib to the python path
cwd = os.getcwd()
@@ -28,11 +47,7 @@ eggs.require( "Cheetah" )
# This should not be required, but it is under certain conditions, thanks to this bug: http://code.google.com/p/python-nose/issues/detail?id=284
eggs.require( "pysqlite" )
import atexit, logging, os, os.path, sys, tempfile
import twill, unittest, time
import sys, threading, random
import httplib, socket
import urllib
import twill
from paste import httpserver
# This is for the tool shed application.
import galaxy.webapps.tool_shed.app
@@ -42,6 +57,7 @@ from galaxy.webapps.tool_shed import buildapp as toolshedbuildapp
from galaxy.app import UniverseApplication as GalaxyUniverseApplication
from galaxy.web import buildapp as galaxybuildapp
from galaxy.util import asbool
from galaxy.util.json import to_json_string
import nose.core
import nose.config
@@ -69,6 +85,9 @@ default_install_db_merged = False
# should this serve static resources (scripts, images, styles, etc.)
STATIC_ENABLED = True
global galaxyapp
galaxyapp = None
def get_static_settings():
"""Returns dictionary of the settings necessary for a galaxy App
to be wrapped in the static middleware.
@@ -489,7 +508,6 @@ def main():
else:
return 1
def __copy_database_template( source, db_path ):
"""
Copy a 'clean' sqlite template database (from file or URL) to specified
Binary file not shown.