Add functional tests to cover some recent new library features, and a couple of miscellaneous UI improvements.

This commit is contained in:
Greg Von Kuster
2011-03-09 14:50:54 -05:00
parent 82ef98f15c
commit a5ea34e29a
5 changed files with 157 additions and 7 deletions
+2 -1
View File
@@ -2132,7 +2132,8 @@ class LibraryCommon( BaseController, UsesFormDefinitions ):
def __build_target_folder_id_select_field( trans, folders, selected_value='none' ):
for folder in folders:
if not folder.parent:
folder.name = 'Data library root folder'
folder.name = 'Data library root'
break
return build_select_field( trans,
objs=folders,
label_attr='name',
@@ -1636,9 +1636,11 @@ class RequestsCommon( BaseController, UsesFormDefinitions ):
else:
selected_folder_id = 'none'
folders = []
# TODO: Change the name of the library root folder to "Library root" to clarify to the
# user that it is the root folder. We probably should just change this in the Library code,
# and update the data in the db.
# Change the name of the library root folder to clarify that it is the root
for folder in folders:
if not folder.parent:
folder.name = 'Data library root'
break
folder_select_field = build_select_field( trans,
folders,
'name',
@@ -1,6 +1,16 @@
<%namespace file="/message.mako" import="render_msg" />
<%inherit file="/base.mako"/>
<%def name="javascripts()">
${parent.javascripts()}
${h.js("jquery.autocomplete", "autocomplete_tagging" )}
</%def>
<%def name="stylesheets()">
${parent.stylesheets()}
${h.css( "autocomplete_tagging" )}
</%def>
<%
if source_library:
source_library_id = trans.security.encode_id( source_library.id )
+17 -1
View File
@@ -2144,7 +2144,8 @@ class TwillTestCase( unittest.TestCase ):
#tc.fv( "1", "do_action", format )
#tc.submit( "action_on_datasets_button" )
# Here's the new approach...
url = "%s/library_common/act_on_multiple_datasets?cntrller=%s&library_id=%s&do_action=%s" % ( self.url, cntrller, library_id, format )
url = "%s/library_common/act_on_multiple_datasets?cntrller=%s&library_id=%s&do_action=%s" \
% ( self.url, cntrller, library_id, format )
for ldda_id in ldda_ids:
url += "&ldda_ids=%s" % ldda_id
self.visit_url( url )
@@ -2195,6 +2196,21 @@ class TwillTestCase( unittest.TestCase ):
errmsg += 'Unpacked archive remains in: %s\n' % tmpd
raise AssertionError( errmsg )
shutil.rmtree( tmpd )
def move_library_item( self, cntrller, item_type, item_id, source_library_id, make_target_current,
target_library_id='', target_folder_id='', strings_displayed=[], strings_displayed_after_submit=[] ):
self.home()
self.visit_url( "%s/library_common/move_library_item?cntrller=%s&item_type=%s&item_id=%s&source_library_id=%s&make_target_current=%s" \
% ( self.url, cntrller, item_type, item_id, source_library_id, make_target_current ) )
if target_library_id:
self.refresh_form( 'target_library_id', target_library_id )
if target_folder_id:
tc.fv( '1', 'target_folder_id', target_folder_id )
for check_str in strings_displayed:
self.check_page_for_string( check_str )
tc.submit( 'move_library_item_button' )
for check_str in strings_displayed_after_submit:
self.check_page_for_string( check_str )
self.home()
def delete_library_item( self, cntrller, library_id, item_id, item_name, item_type='library_dataset' ):
"""Mark a library item as deleted"""
self.home()
+123 -2
View File
@@ -35,7 +35,7 @@ class TestLibraryFeatures( TwillTestCase ):
def test_005_create_libraries( self ):
"""Testing creating libraries used in this script, then renaming one of them"""
# Logged in as admin_user
for index in range( 0, 1 ):
for index in range( 0, 3 ):
name = 'library%s' % str( index + 1 )
description = '%s description' % name
synopsis = '%s synopsis' % name
@@ -45,6 +45,12 @@ class TestLibraryFeatures( TwillTestCase ):
global library1
library1 = get_library( 'library1', 'library1 description', 'library1 synopsis' )
assert library1 is not None, 'Problem retrieving library (library1) from the database'
global library2
library2 = get_library( 'library2', 'library2 description', 'library2 synopsis' )
assert library2 is not None, 'Problem retrieving library (library2) from the database'
global library3
library3 = get_library( 'library3', 'library3 description', 'library3 synopsis' )
assert library3 is not None, 'Problem retrieving library (library3) from the database'
# Rename the library
new_name = "library1 new name"
new_description = "library1 new description"
@@ -413,13 +419,128 @@ class TestLibraryFeatures( TwillTestCase ):
raise AssertionError( 'The library_dataset id %s named "%s" has not been marked as deleted.' % \
( str( library_dataset.id ), library_dataset.name ) )
check_folder( library1.root_folder )
def test_120_populate_public_library2( self ):
"""Testing library datasets within a library"""
# Logged in as admin_user
# Add a folder named Three to library2 root
root_folder = library2.root_folder
name = "One"
description = "One description"
self.add_folder( 'library_admin',
self.security.encode_id( library2.id ),
self.security.encode_id( root_folder.id ),
name=name,
description=description )
global folder3
folder3 = get_folder( root_folder.id, name, description )
assert folder3 is not None, 'Problem retrieving library folder named "%s" from the database' % name
# Upload dataset 1.bed to folder One
filename = '1.bed'
ldda_message = "Testing uploading %s" % filename
self.upload_library_dataset( cntrller='library_admin',
library_id=self.security.encode_id( library2.id ),
folder_id=self.security.encode_id( folder3.id ),
filename=filename,
file_type='bed',
dbkey='hg18',
ldda_message=ldda_message,
strings_displayed=[ 'Upload files' ] )
global ldda5
ldda5 = get_latest_ldda_by_name( filename )
assert ldda5 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda5 from the database'
# Add a sub-folder named Two to folder One
name = "Two"
description = "Two description"
self.add_folder( 'library_admin',
self.security.encode_id( library2.id ),
self.security.encode_id( folder3.id ),
name=name,
description=description )
global folder4
folder4 = get_folder( folder3.id, name, description )
assert folder4 is not None, 'Problem retrieving library folder named "%s" from the database' % name
# Upload dataset 2.bed to folder Two
filename = '2.bed'
ldda_message = "Testing uploading %s" % filename
self.upload_library_dataset( cntrller='library_admin',
library_id=self.security.encode_id( library2.id ),
folder_id=self.security.encode_id( folder4.id ),
filename=filename,
file_type='bed',
dbkey='hg18',
ldda_message=ldda_message,
strings_displayed=[ 'Upload files' ] )
global ldda6
ldda6 = get_latest_ldda_by_name( filename )
assert ldda6 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda6 from the database'
# Add a folder named Three to library2 root
name = "Three"
description = "Three description"
self.add_folder( 'library_admin',
self.security.encode_id( library2.id ),
self.security.encode_id( root_folder.id ),
name=name,
description=description )
global folder5
folder5 = get_folder( root_folder.id, name, description )
assert folder5 is not None, 'Problem retrieving library folder named "%s" from the database' % name
# Upload dataset 3.bed to library2 root folder
filename = '3.bed'
ldda_message = "Testing uploading %s" % filename
self.upload_library_dataset( cntrller='library_admin',
library_id=self.security.encode_id( library2.id ),
folder_id=self.security.encode_id( root_folder.id ),
filename=filename,
file_type='bed',
dbkey='hg18',
ldda_message=ldda_message,
strings_displayed=[ 'Upload files' ] )
global ldda7
ldda7 = get_latest_ldda_by_name( filename )
assert ldda7 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda7 from the database'
def test_125_move_dataset_within_library2( self ):
"""Testing moving a dataset within library2"""
# Logged in as admin_user
# Move 3.bed to folder Three
self.move_library_item( cntrller='library_admin',
item_type='ldda',
item_id=self.security.encode_id( ldda7.id ),
source_library_id=self.security.encode_id( library2.id ),
make_target_current=True,
target_folder_id=self.security.encode_id( folder5.id ),
strings_displayed=[ 'Move data library items',
'3.bed' ],
strings_displayed_after_submit=[ '1 dataset moved to folder (Three) within data library (library2)' ] )
def test_130_move_folder_to_another_library( self ):
"""Testing moving a folder to another library"""
# Logged in as admin_user
# Move folder Three which now includes 3.bed to library3
self.move_library_item( cntrller='library_admin',
item_type='folder',
item_id=self.security.encode_id( folder5.id ),
source_library_id=self.security.encode_id( library2.id ),
make_target_current=False,
target_library_id=self.security.encode_id( library3.id ),
target_folder_id=self.security.encode_id( library3.root_folder.id ),
strings_displayed=[ 'Move data library items',
'Three' ],
strings_displayed_after_submit=[ 'Moved folder (Three) to folder (library3) within data library (library3)' ] )
# Make sure folder Three is not longer in library2
self.browse_library( cntrller='library_admin',
library_id=self.security.encode_id( library2.id ),
strings_displayed=[ folder4.name, folder4.description ],
strings_not_displayed=[ folder5.name, folder5.description ] )
# Make sure folder Three was moved to library3
self.browse_library( cntrller='library_admin',
library_id=self.security.encode_id( library3.id ),
strings_displayed=[ folder5.name, folder5.description, ldda7.name ] )
def test_999_reset_data_for_later_test_runs( self ):
"""Reseting data to enable later test runs to pass"""
# Logged in as admin_user
##################
# Purge all libraries
##################
for library in [ library1 ]:
for library in [ library1, library2, library3 ]:
self.delete_library_item( 'library_admin',
self.security.encode_id( library.id ),
self.security.encode_id( library.id ),