def test_100_add_ldda_to_folder3(self): """ Testing adding a new library dataset to library3's folder, making sure the SelectField setting is correct on the upload form. """ filename = '3.bed' ldda_message = '3.bed message' # Logged in as admin_user self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id(library3.id), folder_id=self.security.encode_id(folder3.id), filename=filename, file_type='bed', dbkey='hg18', ldda_message=ldda_message, strings_displayed=['SelectField', 'selected>Option1']) ldda = get_latest_ldda_by_name(filename) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library(cntrller='library_admin', library_id=self.security.encode_id(library3.id), strings_displayed=[ldda.name, ldda.message, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', self.security.encode_id(library3.id), self.security.encode_id(folder3.id), self.security.encode_id(ldda.id), ldda.name, strings_displayed=['SelectField', 'Option1']) # Import a dataset from the current history filename = '8.bed' self.new_history(name='import+with+SelectField') self.upload_file(filename) hda = get_latest_hda() self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id(library3.id), folder_id=self.security.encode_id(folder3.id), upload_option='import_from_history', hda_ids=self.security.encode_id(hda.id), strings_displayed=[ '<select name="%s" last_selected_value="Option1">' % select_field_name ]) ldda = get_latest_ldda_by_name(filename) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library(cntrller='library_admin', library_id=self.security.encode_id(library3.id), strings_displayed=[ldda.name, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', self.security.encode_id(library3.id), self.security.encode_id(folder3.id), self.security.encode_id(ldda.id), ldda.name, strings_displayed=['SelectField', 'Option1'])
def test_100_add_ldda_to_folder3( self ): """ Testing adding a new library dataset to library3's folder, making sure the SelectField setting is correct on the upload form. """ filename = '3.bed' ldda_message = '3.bed message' # Logged in as admin_user self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id( library3.id ), folder_id=self.security.encode_id( folder3.id ), filename=filename, file_type='bed', dbkey='hg18', ldda_message=ldda_message, strings_displayed=[ 'SelectField', 'selected>Option1' ] ) ldda = get_latest_ldda_by_name( filename ) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library( cntrller='library_admin', library_id=self.security.encode_id( library3.id ), strings_displayed=[ ldda.name, ldda.message, 'bed' ] ) # Make sure the library template contents were correctly saved self.ldda_edit_info( 'library_admin', self.security.encode_id( library3.id ), self.security.encode_id( folder3.id ), self.security.encode_id( ldda.id ), ldda.name, strings_displayed=[ 'SelectField', 'Option1' ] ) # Import a dataset from the current history filename = '8.bed' self.new_history( name='import+with+SelectField' ) self.upload_file( filename ) hda = get_latest_hda() self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id( library3.id ), folder_id=self.security.encode_id( folder3.id ), upload_option='import_from_history', hda_ids=self.security.encode_id( hda.id ), strings_displayed=[ '<select name="%s" last_selected_value="Option1">' % select_field_name ] ) ldda = get_latest_ldda_by_name( filename ) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library( cntrller='library_admin', library_id=self.security.encode_id( library3.id ), strings_displayed=[ ldda.name, 'bed' ] ) # Make sure the library template contents were correctly saved self.ldda_edit_info( 'library_admin', self.security.encode_id( library3.id ), self.security.encode_id( folder3.id ), self.security.encode_id( ldda.id ), ldda.name, strings_displayed=[ 'SelectField', 'Option1' ] )
def test_170_add_ldda_to_folder6( self ): """ Testing adding a new library dataset to library6's folder, making sure the WorkflowField setting is correct on the upload form. """ # Logged in as admin_user filename = '7.bed' ldda_message = '7.bed message' self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id( library6.id ), folder_id=self.security.encode_id( folder6.id ), filename=filename, file_type='bed', dbkey='hg18', ldda_message=ldda_message, strings_displayed=[ 'WorkflowField', 'none' ] ) ldda = get_latest_ldda_by_name( filename ) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library( cntrller='library_admin', library_id=self.security.encode_id( library6.id ), strings_displayed=[ ldda.name, ldda.message, 'bed' ] ) # Make sure the library template contents were correctly saved self.ldda_edit_info( 'library_admin', self.security.encode_id( library6.id ), self.security.encode_id( folder6.id ), self.security.encode_id( ldda.id ), ldda.name, strings_displayed=[ 'WorkflowField', 'none' ] )
def test_150_add_ldda_to_library5( self ): """ Testing adding a new library dataset to library5's folder, making sure the TextField and new TextArea settings are correct on the upload form. """ filename = '6.bed' ldda_message = '6.bed message' # Logged in as admin_user self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id( library5.id ), folder_id=self.security.encode_id( library5.root_folder.id ), filename=filename, file_type='bed', dbkey='hg18', ldda_message=ldda_message, strings_displayed=[ 'TextField', 'This text should be inherited', 'TextArea' ] ) ldda = get_latest_ldda_by_name( filename ) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library( cntrller='library_admin', library_id=self.security.encode_id( library5.id ), strings_displayed=[ ldda.name, ldda.message, 'bed' ] ) # Make sure the library template contents were correctly saved self.ldda_edit_info( 'library_admin', self.security.encode_id( library5.id ), self.security.encode_id( library5.root_folder.id ), self.security.encode_id( ldda.id ), ldda.name, strings_displayed=[ 'TextField', 'This text should be inherited', 'TextArea' ] )
def test_040_create_ldda2_with_role2_associated_with_group_and_users( self ): """Testing creating ldda2 with a role that is associated with a group and users""" # Logged in as admin_user # Add a dataset restricted by role2, which is currently associated as follows: # groups: group1 # users: [email protected], [email protected] via group1 # # We first need to make library1 public, but leave its contents permissions unchanged self.make_library_item_public( self.security.encode_id( library1.id ), self.security.encode_id( library1.id ), item_type='library', contents=False, library_name=library1.name ) refresh( library1 ) filename = '2.bed' ldda_message = 'ldda2' self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id( library1.id ), folder_id=self.security.encode_id( folder1.id ), filename=filename, file_type='bed', dbkey='hg17', roles=[ str( role2.id ) ], ldda_message=ldda_message, strings_displayed=[ 'Upload files' ] ) global ldda2 ldda2 = get_latest_ldda_by_name( filename ) assert ldda2 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda2 from the database' self.browse_library( cntrller='library', library_id=self.security.encode_id( library1.id ), strings_displayed=[ ldda2.name, ldda2.message, 'bed' ] )
def test_075_download_archive_of_library_files(self): """Testing downloading an archive of files from library1""" # logged in as regular_user3 self.logout() self.login(email=admin_user.email) filename = '1.bed' self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id(library1.id), folder_id=self.security.encode_id(library1.root_folder.id), filename=filename, file_type='bed', dbkey='hg18', strings_displayed=['Upload files']) global ldda1 ldda1 = get_latest_ldda_by_name(filename) assert ldda1 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda1 from the database' for format in ('tbz', 'tgz', 'zip'): archive = self.download_archive_of_library_files( cntrller='library', library_id=self.security.encode_id(library1.id), ldda_ids=[ self.security.encode_id(ldda1.id), self.security.encode_id(ldda2.id) ], format=format) self.check_archive_contents(archive, (ldda1, ldda2)) os.remove(archive)
def test_025_create_ldda1_with_private_role_restriction( self ): """Testing create ldda1 with a private role restriction""" # Logged in as admin_user # # Library1 LIBRARY_ACCESS = Role1: admin_user, regular_user1, regular_user3 # # Add a dataset restricted by the following: # DATASET_MANAGE_PERMISSIONS = admin_user via DefaultUserPermissions # DATASET_ACCESS = regular_user1 private role via this test method # LIBRARY_ADD = "Role1" via inheritance from parent folder # LIBRARY_MODIFY = "Role1" via inheritance from parent folder # LIBRARY_MANAGE = "Role1" via inheritance from parent folder # # This means that only regular_user1 can see the dataset from the Data Libraries view filename = '1.bed' ldda_message = 'ldda1' self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id( library1.id ), folder_id=self.security.encode_id( folder1.id ), filename=filename, file_type='bed', dbkey='hg18', roles=[ str( regular_user1_private_role.id ) ], ldda_message=ldda_message, strings_displayed=[ 'Upload files' ] ) global ldda1 ldda1 = get_latest_ldda_by_name( filename ) assert ldda1 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda1 from the database' self.browse_library( cntrller='library_admin', library_id=self.security.encode_id( library1.id ), strings_displayed=[ ldda1.name, ldda1.message, 'bed' ] )
def test_085_create_ldda8( self ): """Testing create ldda8, restricting access on upload form to admin_user's private role""" filename = '8.bed' ldda_message = 'ldda8' self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id( library2.id ), folder_id=self.security.encode_id( subfolder2.id ), filename=filename, file_type='bed', dbkey='hg18', roles=[ str( admin_user_private_role.id ) ], ldda_message=ldda_message, strings_displayed=[ 'Upload files' ] ) global ldda8 ldda8 = get_latest_ldda_by_name( filename ) assert ldda8 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda8 from the database'
def test_030_add_dataset_to_folder1(self): """Testing adding a ldda1 to folder1, and adding a new UserAddress on the upload form.""" # Logged in as admin_user # The AddressField template should be inherited to the library dataset upload form. Passing # the value 'new' should submit the form via refresh_on_change and allow new UserAddress information # to be posted as part of the upload. filename = '1.bed' ldda_message = '1.bed message' short_desc = 'Office' self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id(library1.id), folder_id=self.security.encode_id(folder1.id), filename=filename, file_type='bed', dbkey='hg18', template_refresh_field_name=address_field_name, ldda_message=ldda_message, template_refresh_field_contents='new', template_fields=[ ('%s_short_desc' % address_field_name, short_desc), ('%s_name' % address_field_name, 'Dick'), ('%s_institution' % address_field_name, 'PSU'), ('%s_address' % address_field_name, '32 O Street'), ('%s_city' % address_field_name, 'Anywhere'), ('%s_state' % address_field_name, 'AK'), ('%s_postal_code' % address_field_name, '0000000'), ('%s_country' % address_field_name, 'USA') ], strings_displayed=['Upload files']) global user_address1 user_address1 = get_user_address(admin_user, short_desc) assert user_address1 is not None, 'Problem retrieving user_address1 from the database' global ldda1 ldda1 = get_latest_ldda_by_name(filename) assert ldda1 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda1 from the database' self.browse_library( cntrller='library_admin', library_id=self.security.encode_id(library1.id), strings_displayed=[ldda1.name, ldda1.message, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', self.security.encode_id(library1.id), self.security.encode_id(folder1.id), self.security.encode_id(ldda1.id), ldda1.name, strings_displayed=['Dick'])
def test_065_uploading_new_dataset_version(self): """Testing uploading a new version of a library dataset""" # logged in as admin_user filename = '4.bed' ldda_message = 'Testing uploading a new version of a dataset' self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id(library1.id), folder_id=self.security.encode_id(subfolder1.id), replace_id=self.security.encode_id(ldda4.library_dataset.id), filename=filename, file_type='auto', dbkey='hg18', ldda_message=ldda_message, strings_displayed=[ 'Upload files', 'You are currently selecting a new file to replace' ]) global ldda4_version2 ldda4_version2 = get_latest_ldda_by_name(filename) assert ldda4_version2 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda4_version2 from the database' self.ldda_edit_info( 'library_admin', self.security.encode_id(library1.id), self.security.encode_id(subfolder1.id), self.security.encode_id(ldda4_version2.id), ldda4_version2.name, strings_displayed=[ 'This is the latest version of this library dataset' ]) # Check the previous version self.ldda_edit_info( 'library_admin', self.security.encode_id(library1.id), self.security.encode_id(subfolder1.id), self.security.encode_id(ldda4.id), ldda4.name, strings_displayed=[ 'This is an expired version of this library dataset' ]) # Make sure ldda4 is no longer displayed in the library self.browse_library(cntrller='library_admin', library_id=self.security.encode_id(library1.id), strings_not_displayed=[ldda4.name, ldda4.message])
def test_030_add_dataset_to_folder1( self ): """Testing adding a ldda1 to folder1, and adding a new UserAddress on the upload form.""" # Logged in as admin_user # The AddressField template should be inherited to the library dataset upload form. Passing # the value 'new' should submit the form via refresh_on_change and allow new UserAddress information # to be posted as part of the upload. filename = '1.bed' ldda_message = '1.bed message' short_desc = 'Office' self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id( library1.id ), folder_id=self.security.encode_id( folder1.id ), filename=filename, file_type='bed', dbkey='hg18', template_refresh_field_name=address_field_name, ldda_message=ldda_message, template_refresh_field_contents='new', template_fields=[ ( '%s_short_desc' % address_field_name, short_desc ), ( '%s_name' % address_field_name, 'Dick' ), ( '%s_institution' % address_field_name, 'PSU' ), ( '%s_address' % address_field_name, '32 O Street' ), ( '%s_city' % address_field_name, 'Anywhere' ), ( '%s_state' % address_field_name, 'AK' ), ( '%s_postal_code' % address_field_name, '0000000' ), ( '%s_country' % address_field_name, 'USA' ) ], strings_displayed=[ 'Upload files' ] ) global user_address1 user_address1 = get_user_address( admin_user, short_desc ) assert user_address1 is not None, 'Problem retrieving user_address1 from the database' global ldda1 ldda1 = get_latest_ldda_by_name( filename ) assert ldda1 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda1 from the database' self.browse_library( cntrller='library_admin', library_id=self.security.encode_id( library1.id ), strings_displayed=[ ldda1.name, ldda1.message, 'bed' ] ) # Make sure the library template contents were correctly saved self.ldda_edit_info( 'library_admin', self.security.encode_id( library1.id ), self.security.encode_id( folder1.id ), self.security.encode_id( ldda1.id ), ldda1.name, strings_displayed=[ 'Dick' ] )
def test_050_add_2nd_public_dataset_to_folder2(self): """Testing adding a 2nd public dataset folder2""" # Logged in as admin_user filename = '3.bed' ldda_message = "Testing uploading %s" % filename self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id(library1.id), folder_id=self.security.encode_id(folder2.id), filename=filename, file_type='bed', dbkey='hg18', ldda_message=ldda_message, strings_displayed=['Upload files']) global ldda3 ldda3 = get_latest_ldda_by_name(filename) assert ldda3 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda3 from the database' self.browse_library( cntrller='library_admin', library_id=self.security.encode_id(library1.id), strings_displayed=[ldda3.name, ldda3.message, 'bed'])
def test_055_copy_dataset_from_history_to_subfolder(self): """Testing copying a dataset from the current history to a subfolder""" # logged in as admin_user self.new_history() filename = '4.bed' self.upload_file(filename) latest_hda = get_latest_hda() self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id(library1.id), folder_id=self.security.encode_id(subfolder1.id), upload_option='import_from_history', hda_ids=self.security.encode_id(latest_hda.id), ldda_message='Imported from history', strings_displayed=['Active datasets in your current history']) global ldda4 ldda4 = get_latest_ldda_by_name(filename) assert ldda4 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda4 from the database' self.browse_library( cntrller='library_admin', library_id=self.security.encode_id(library1.id), strings_displayed=[ldda4.name, ldda4.message, 'bed'])
def test_135_upload_unsorted_bam_to_library_using_file_path_with_link_to_file( self): """Test uploading 3unsorted.bam, using filesystem_paths option in combination with link_to_files""" filename = '3unsorted.bam' self.upload_library_dataset( cntrller='library_admin', library_id=self.security.encode_id(library2.id), folder_id=self.security.encode_id(library2.root_folder.id), upload_option='upload_paths', link_data_only='link_to_files', filesystem_paths='test-data/3unsorted.bam') global ldda8 ldda8 = get_latest_ldda_by_name(filename) assert ldda8 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda8 from the database' # The upload above should produce an error condition in the uploaded library dataset since # the uploaded bam file is not sorted, and we are linking to the file. self.ldda_info(cntrller='library_admin', library_id=self.security.encode_id(library2.id), folder_id=self.security.encode_id( library2.root_folder.id), ldda_id=self.security.encode_id(ldda8.id), strings_displayed=[ 'The uploaded files need grooming, so change your' ])
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'