A couple bug fixes, additional functional tests for the Data Libraries features.

This commit is contained in:
Greg Von Kuster
2009-10-02 08:55:01 -04:00
parent 6d573a9870
commit ff1ab81c32
4 changed files with 95 additions and 25 deletions
+1 -1
View File
@@ -266,7 +266,7 @@ class LibraryCommon( BaseController ):
if cntrller == 'library_admin':
tmplt = '/admin/library/select_info_template.mako'
else:
tmplt = '/ibrary/select_info_template.mako'
tmplt = '/library/select_info_template.mako'
return trans.fill_template( tmplt,
library_item_name=library_item.name,
library_item_desc=library_item_desc,
+1 -1
View File
@@ -113,7 +113,7 @@
$(this).ajaxSubmit( { iframe: true } );
if ( $(this).find("input[name='folder_id']").val() != undefined ) {
var library_id = $(this).find("input[name='library_id']").val();
if ( location.pathname.indexOf( 'library_admin' ) ) {
if ( location.pathname.indexOf( 'library_admin' ) != -1 ) {
$("iframe#galaxy_main").attr("src","${h.url_for( controller='library_admin', action='browse_library' )}?obj_id=" + library_id + "&created_ldda_ids=" + async_datasets);
} else {
$("iframe#galaxy_main").attr("src","${h.url_for( controller='library', action='browse_library' )}?obj_id=" + library_id + "&created_ldda_ids=" + async_datasets);
+24 -10
View File
@@ -1209,12 +1209,12 @@ class TwillTestCase( unittest.TestCase ):
check_str = "Information template '%s' has been updated" % name
self.check_page_for_string( check_str )
self.home()
def add_folder_info_template( self, cntrller, library_id, library_name, folder_id, folder_name, num_fields='2',
def add_folder_info_template( self, controller, cntrller, library_id, library_name, folder_id, folder_name, num_fields='2',
name='Folder Template 1', ele_name_0='Fu', ele_help_0='', ele_name_1='Bar', ele_help_1='' ):
"""Add a new info template to a folder"""
self.home()
url = "%s/library_admin/info_template?cntrller=%s&library_id=%s&response_action='folder'&create_info_template_button=Go" % \
( self.url, cntrller, library_id, folder_id )
url = "%s/%s/info_template?cntrller=%s&library_id=%s&response_action='folder'&create_info_template_button=Go" % \
( self.url, controller, cntrller, library_id, folder_id )
self.home()
self.visit_url( url )
check_str = "Create a new information template for folder '%s'" % folder_name
@@ -1229,15 +1229,28 @@ class TwillTestCase( unittest.TestCase ):
tc.fv( '1', 'new_element_description_1', ele_help_1.replace( '+', ' ' ) )
tc.submit( 'new_info_template_button' )
self.home()
def add_folder( self, library_id, folder_id, name='Folder One', description='This is Folder One' ):
def add_folder( self, controller, library_id, folder_id, name='Folder One', description='This is Folder One' ):
"""Create a new folder"""
self.home()
self.visit_url( "%s/library_admin/folder?library_id=%s&obj_id=%s&new=True" % ( self.url, library_id, folder_id ) )
self.visit_url( "%s/%s/folder?library_id=%s&obj_id=%s&new=True" % \
( self.url, controller, library_id, folder_id ) )
self.check_page_for_string( 'Create a new folder' )
tc.fv( "1", "name", name ) # form field 1 is the field named name...
tc.fv( "1", "description", description ) # form field 2 is the field named description...
tc.submit( "new_folder_button" )
self.home()
def edit_folder_info( self, controller, folder_id, library_id, name, new_name, description ):
"""Add information to a library using an existing template with 2 elements"""
self.home()
self.visit_url( "%s/%s/folder?obj_id=%s&library_id=%s&information=True" % \
( self.url, controller, folder_id, library_id) )
self.check_page_for_string( "Edit folder name and description" )
tc.fv( '1', "name", new_name )
tc.fv( '1', "description", description )
tc.submit( 'rename_folder_button' )
check_str = "Folder '%s' has been renamed to '%s'" % ( name, new_name )
self.check_page_for_string( check_str )
self.home()
def rename_folder( self, library_id, folder_id, old_name, name='Folder One Renamed', description='This is Folder One Re-described' ):
"""Rename a Folder"""
self.home()
@@ -1251,13 +1264,14 @@ class TwillTestCase( unittest.TestCase ):
check_str = "Folder '%s' has been renamed to '%s'" % ( old_name, name )
self.check_page_for_string( check_str )
self.home()
def add_library_dataset( self, filename, library_id, folder_id, folder_name, file_type='auto',
dbkey='hg18', roles=[], message='', root=False, template_field_name1='', template_field_contents1='' ):
def add_library_dataset( self, controller, filename, library_id, folder_id, folder_name,
file_type='auto', dbkey='hg18', roles=[], message='', root=False,
template_field_name1='', template_field_contents1='' ):
"""Add a dataset to a folder"""
filename = self.get_filename( filename )
self.home()
self.visit_url( "%s/library_admin/upload_library_dataset?upload_option=upload_file&library_id=%s&folder_id=%s&message=%s" % \
( self.url, library_id, folder_id, message ) )
self.visit_url( "%s/%s/upload_library_dataset?upload_option=upload_file&library_id=%s&folder_id=%s&message=%s" % \
( self.url, controller, library_id, folder_id, message ) )
self.check_page_for_string( 'Upload files' )
tc.fv( "1", "folder_id", folder_id )
tc.formfile( "1", "files_0|file_data", filename )
@@ -1274,7 +1288,7 @@ class TwillTestCase( unittest.TestCase ):
check_str = "Added 1 datasets to the library '%s' ( each is selected )." % folder_name
else:
check_str = "Added 1 datasets to the folder '%s' ( each is selected )." % folder_name
self.check_page_for_string( check_str )
data = self.last_page()
self.library_wait( library_id )
self.home()
def set_library_dataset_permissions( self, library_id, folder_id, ldda_id, ldda_name, role_ids_str, permissions_in, permissions_out ):
+69 -13
View File
@@ -540,7 +540,8 @@ class TestSecurityAndLibraries( TwillTestCase ):
message = 'Testing adding a public dataset to the root folder'
# The form_one template should be inherited to the library dataset upload form.
template_contents = "%s contents for root folder 1.bed" % form_one_field_label
self.add_library_dataset( '1.bed',
self.add_library_dataset( 'library_admin',
'1.bed',
str( library_one.id ),
str( library_one.root_folder.id ),
library_one.root_folder.name,
@@ -594,7 +595,11 @@ class TestSecurityAndLibraries( TwillTestCase ):
root_folder = library_one.root_folder
name = "Root Folder's Folder One"
description = "This is the root folder's Folder One"
self.add_folder( str( library_one.id ), str( root_folder.id ), name=name, description=description )
self.add_folder( 'library_admin',
str( library_one.id ),
str( root_folder.id ),
name=name,
description=description )
global folder_one
folder_one = galaxy.model.LibraryFolder.filter( and_( galaxy.model.LibraryFolder.table.c.parent_id==root_folder.id,
galaxy.model.LibraryFolder.table.c.name==name,
@@ -626,7 +631,7 @@ class TestSecurityAndLibraries( TwillTestCase ):
"""Testing adding a folder to a library folder"""
name = "Folder One's Subfolder"
description = "This is the Folder One's subfolder"
self.add_folder( str( library_one.id ), str( folder_one.id ), name=name, description=description )
self.add_folder( 'library_admin', str( library_one.id ), str( folder_one.id ), name=name, description=description )
global subfolder_one
subfolder_one = galaxy.model.LibraryFolder.filter( and_( galaxy.model.LibraryFolder.table.c.parent_id==folder_one.id,
galaxy.model.LibraryFolder.table.c.name==name,
@@ -659,7 +664,7 @@ class TestSecurityAndLibraries( TwillTestCase ):
root_folder = library_one.root_folder
name = "Folder Two"
description = "This is the root folder's Folder Two"
self.add_folder( str( library_one.id ), str( root_folder.id ), name=name, description=description )
self.add_folder( 'library_admin', str( library_one.id ), str( root_folder.id ), name=name, description=description )
global folder_two
folder_two = galaxy.model.LibraryFolder.filter( and_( galaxy.model.LibraryFolder.table.c.parent_id==root_folder.id,
galaxy.model.LibraryFolder.table.c.name==name,
@@ -687,7 +692,8 @@ class TestSecurityAndLibraries( TwillTestCase ):
message = "Testing adding a public dataset to the folder named %s" % folder_two.name
# The form_one template should be inherited to the library dataset upload form.
template_contents = "%s contents for %s 2.bed" % ( form_one_field_label, folder_two.name )
self.add_library_dataset( '2.bed',
self.add_library_dataset( 'library_admin',
'2.bed',
str( library_one.id ),
str( folder_two.id ),
folder_two.name,
@@ -718,7 +724,8 @@ class TestSecurityAndLibraries( TwillTestCase ):
message = "Testing adding a 2nd public dataset to the folder named %s" % folder_two.name
# The form_one template should be inherited to the library dataset upload form.
template_contents = "%s contents for %s 3.bed" % ( form_one_field_label, folder_two.name )
self.add_library_dataset( '3.bed',
self.add_library_dataset( 'library_admin',
'3.bed',
str( library_one.id ),
str( folder_two.id ),
folder_two.name,
@@ -760,7 +767,8 @@ class TestSecurityAndLibraries( TwillTestCase ):
message ='This is a test of the fourth dataset uploaded'
# The form_one template should be inherited to the library dataset upload form.
template_contents = "%s contents for %s 4.bed" % ( form_one_field_label, folder_one.name )
self.add_library_dataset( '4.bed',
self.add_library_dataset( 'library_admin',
'4.bed',
str( library_one.id ),
str( folder_one.id ),
folder_one.name,
@@ -867,7 +875,8 @@ class TestSecurityAndLibraries( TwillTestCase ):
message = 'Testing adding a dataset with a role that is associated with a group and users'
# The form_one template should be inherited to the library dataset upload form.
template_contents = "%s contents for %s 5.bed" % ( form_one_field_label, folder_one.name )
self.add_library_dataset( '5.bed',
self.add_library_dataset( 'library_admin',
'5.bed',
str( library_one.id ),
str( folder_one.id ),
folder_one.name,
@@ -1580,7 +1589,8 @@ class TestSecurityAndLibraries( TwillTestCase ):
galaxy.model.Library.table.c.deleted==False ) ).first()
assert library_two is not None, 'Problem retrieving library named "%s" from the database' % name
# Add a dataset to the library
self.add_library_dataset( '7.bed',
self.add_library_dataset( 'library_admin',
'7.bed',
str( library_two.id ),
str( library_two.root_folder.id ),
library_two.root_folder.name,
@@ -1628,11 +1638,57 @@ class TestSecurityAndLibraries( TwillTestCase ):
self.visit_url( '%s/library/browse_libraries' % self.url )
self.check_page_for_string( name )
self.logout()
# Login as regular_user1 and make sure they can see the library
# Login as regular_user2 and make sure they can see the library
self.login( email=regular_user2.email )
self.visit_url( '%s/library/browse_libraries' % self.url )
self.check_page_for_string( name )
# TODO: add more tests here to cover adding, modifying, managing permissions from the Librarys persoective as a regular user
# Add a dataset to the library
message = 'Testing adding 1.bed to Library Three root folder'
self.add_library_dataset( 'library',
'1.bed',
str( library_three.id ),
str( library_three.root_folder.id ),
library_three.root_folder.name,
file_type='bed',
dbkey='hg18',
message=message.replace( ' ', '+' ),
root=True )
# Add a folder to the library
name = "Root Folder's Folder X"
description = "This is the root folder's Folder X"
self.add_folder( 'library',
str( library_three.id ),
str( library_three.root_folder.id ),
name=name,
description=description )
folder_x = galaxy.model.LibraryFolder.filter( and_( galaxy.model.LibraryFolder.table.c.parent_id==library_three.root_folder.id,
galaxy.model.LibraryFolder.table.c.name==name,
galaxy.model.LibraryFolder.table.c.description==description ) ).first()
# Modify the folder's information
new_name = "Root Folder's Folder Y"
new_description = "This is the root folder's Folder Y"
self.edit_folder_info( 'library', str( folder_x.id ), str( library_three.id ), name, new_name, new_description )
folder_x.refresh()
# Add a dataset to the folder
name2 = "Folder Y subfolder"
description2 = "Folder Y subfolder description"
self.add_library_dataset( 'library',
'2.bed',
str( library_three.id ),
str( folder_x.id ),
folder_x.name,
file_type='bed',
dbkey='hg18',
message=message.replace( ' ', '+' ),
root=False )
ldda_x = galaxy.model.LibraryDatasetDatasetAssociation.query() \
.order_by( desc( galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time ) ).first()
assert ldda_x is not None, 'Problem retrieving ldda_x from the database'
# Log in as regular_user1
self.logout()
self.login( email=regular_user1.email )
self.visit_url( '%s/library/browse_library?obj_id=%s' % ( self.url, str( library_three.id ) ) )
self.check_page_for_string( ldda_x.name )
self.logout()
self.login( email=admin_user.email )
self.delete_library_item( str( library_three.id ), str( library_three.id ), library_three.name, library_item_type='library' )
@@ -1671,11 +1727,11 @@ class TestSecurityAndLibraries( TwillTestCase ):
# Reset DefaultHistoryPermissions for regular_user1
#####################
self.logout()
self.login( email='test1@bx.psu.edu' )
self.login( email=regular_user1.email )
# Change DefaultHistoryPermissions for regular_user1 back to the default
permissions_in = [ 'DATASET_MANAGE_PERMISSIONS' ]
permissions_out = [ 'DATASET_ACCESS' ]
role_id = str( regular_user1_private_role.id )
self.user_set_default_permissions( permissions_in=permissions_in, permissions_out=permissions_out, role_id=role_id )
self.logout()
self.login( email='test@bx.psu.edu' )
self.login( email=admin_user.email )