def test_045_change_permissions_on_current_history(self):
     """Testing changing permissions on the current history"""
     # Logged in as regular_user3
     self.logout()
     self.login(email=admin_user.email)
     # Current history is history4
     self.new_history()
     global history5
     history5 = (
         sa_session.query(galaxy.model.History)
         .filter(
             and_(
                 galaxy.model.History.table.c.deleted == False, galaxy.model.History.table.c.user_id == admin_user.id
             )
         )
         .order_by(desc(galaxy.model.History.table.c.create_time))
         .first()
     )
     assert history5 is not None, "Problem retrieving history5 from database"
     self.rename_history(self.security.encode_id(history5.id), history5.name, new_name=urllib.quote("history 5"))
     # Current history is hostory5
     sa_session.refresh(history5)
     # Due to the limitations of twill ( not functional with the permissions forms ), we're forced
     # to do this manually.  At this point, we just want to restrict the access permission on history5
     # to the admin_user
     global access_action
     access_action = galaxy.model.Dataset.permitted_actions.DATASET_ACCESS.action
     dhp = galaxy.model.DefaultHistoryPermissions(history5, access_action, admin_user_private_role)
     sa_session.add(dhp)
     sa_session.flush()
     sa_session.refresh(history5)
     global history5_default_permissions
     history5_default_permissions = [dhp.action for dhp in history5.default_permissions]
     # Sort for later comparison
     history5_default_permissions.sort()
     self.upload_file("1.bed", dbkey="hg18")
     history5_dataset1 = None
     for hda in history5.datasets:
         if hda.name == "1.bed":
             history5_dataset1 = hda.dataset
             break
     assert history5_dataset1 is not None, "Problem retrieving history5_dataset1 from the database"
     # The permissions on the dataset should be restricted from sharing with anyone due to the
     # inherited history permissions
     dataset_permissions = [a.action for a in history5_dataset1.actions]
     dataset_permissions.sort()
     if dataset_permissions != history5_default_permissions:
         err_msg = (
             "Dataset permissions for history5_dataset1 (%s) were not correctly inherited from history permissions (%s)"
             % (str(dataset_permissions), str(history5_default_permissions))
         )
         raise AssertionError, err_msg
     # Make sure when we logout and login, the history default permissions are preserved
     self.logout()
     self.login(email=admin_user.email)
     sa_session.refresh(history5)
     current_history_permissions = [dhp.action for dhp in history5.default_permissions]
     current_history_permissions.sort()
     if current_history_permissions != history5_default_permissions:
         raise AssertionError, "With logout and login, the history default permissions are not preserved"
 def test_085_reset_data_for_later_test_runs(self):
     """Reseting data to enable later test runs to to be valid"""
     # logged in as admin_user
     # Clean up admin_user
     # Unshare history3 - shared with regular_user1, regular_user2, regular_user3
     self.unshare_history(self.security.encode_id(history3.id), self.security.encode_id(regular_user1.id))
     self.unshare_history(self.security.encode_id(history3.id), self.security.encode_id(regular_user2.id))
     self.unshare_history(self.security.encode_id(history3.id), self.security.encode_id(regular_user3.id))
     # Unshare history4 - shared with regular_user2, regular_user3
     self.unshare_history(self.security.encode_id(history4.id), self.security.encode_id(regular_user2.id))
     self.unshare_history(self.security.encode_id(history4.id), self.security.encode_id(regular_user3.id))
     # Unshare history5 - shared with regular_user1
     self.unshare_history(self.security.encode_id(history5.id), self.security.encode_id(regular_user1.id))
     # Delete histories
     self.delete_history(id=self.security.encode_id(history3.id))
     self.delete_history(id=self.security.encode_id(history3_clone2.id))
     self.delete_history(id=self.security.encode_id(history3_clone3.id))
     self.delete_history(id=self.security.encode_id(history4.id))
     self.delete_history(id=self.security.encode_id(history5.id))
     # Eliminate Sharing role for: [email protected], [email protected]
     self.mark_role_deleted(self.security.encode_id(sharing_role.id), sharing_role.name)
     self.purge_role(self.security.encode_id(sharing_role.id), sharing_role.name)
     # Manually delete the sharing role from the database
     sa_session.refresh(sharing_role)
     sa_session.delete(sharing_role)
     sa_session.flush()
     # Clean up regular_user_1
     self.logout()
     self.login(email=regular_user1.email)
     self.delete_history(id=self.security.encode_id(history3_clone1.id))
     self.delete_history(id=self.security.encode_id(history5_clone1.id))
def delete_request_type_permissions( id ):
    rtps = sa_session.query( galaxy.model.RequestTypePermissions ) \
                     .filter( and_( galaxy.model.RequestTypePermissions.table.c.request_type_id==id ) ) \
                     .order_by( desc( galaxy.model.RequestTypePermissions.table.c.create_time ) )
    for rtp in rtps:
        sa_session.delete( rtp )
    sa_session.flush()
 def test_010_user_reqistration_single_user_info_forms( self ):
     ''' Testing user registration with a single user info form '''
     # lets delete the 'Researcher' user info form
     self.login( '*****@*****.**' )
     form_two_latest = get_latest_form(form_two_name)
     form_two_latest.current.deleted = True
     sa_session.add( form_two_latest.current )
     sa_session.flush()
     self.home()
     self.visit_page('forms/manage?sort=create_time&f-deleted=True')
     self.check_page_for_string(form_two_latest.name)
     self.logout()
     # user a new user with 'Student' user info form
     form_one = get_latest_form(form_one_name)
     user_info_values=['Educational', 'Penn State', True]
     self.create_user_with_info( '*****@*****.**', 'testuser', 'test12', 
                                 user_info_forms='single',
                                 user_info_form_id=form_one.id, 
                                 user_info_values=user_info_values )
     self.home()
     self.visit_page( "user/show_info" )
     self.check_page_for_string( "Manage User Information" )
     self.check_page_for_string( user_info_values[0] )
     self.check_page_for_string( user_info_values[1] )
     self.check_page_for_string( '<input type="checkbox" name="field_2" value="true" checked>' )
Exemple #5
0
def delete_request_type_permissions(id):
    rtps = sa_session.query( galaxy.model.RequestTypePermissions ) \
                     .filter( and_( galaxy.model.RequestTypePermissions.table.c.request_type_id==id ) ) \
                     .order_by( desc( galaxy.model.RequestTypePermissions.table.c.create_time ) )
    for rtp in rtps:
        sa_session.delete(rtp)
    sa_session.flush()
Exemple #6
0
 def test_010_user_reqistration_single_user_info_forms(self):
     ''' Testing user registration with a single user info form '''
     # lets delete the 'Researcher' user info form
     self.login('*****@*****.**')
     form_two_latest = get_latest_form(form_two_name)
     form_two_latest.current.deleted = True
     sa_session.add(form_two_latest.current)
     sa_session.flush()
     self.home()
     self.visit_page('forms/manage?sort=create_time&f-deleted=True')
     self.check_page_for_string(form_two_latest.name)
     self.logout()
     # user a new user with 'Student' user info form
     form_one = get_latest_form(form_one_name)
     user_info_values = ['Educational', 'Penn State', True]
     self.create_user_with_info('*****@*****.**',
                                'testuser',
                                'test12',
                                user_info_forms='single',
                                user_info_form_id=form_one.id,
                                user_info_values=user_info_values)
     self.home()
     self.visit_page("user/show_info")
     self.check_page_for_string("Manage User Information")
     self.check_page_for_string(user_info_values[0])
     self.check_page_for_string(user_info_values[1])
     self.check_page_for_string(
         '<input type="checkbox" name="field_2" value="true" checked>')
 def test_020_create_user_as_admin( self ):
     ''' Testing creating users as an admin '''
     self.logout()
     self.login( '*****@*****.**' )
     form_one = get_latest_form(form_one_name)
     user_info_values=['Educational', 'Penn State', True]
     self.create_user_with_info( '*****@*****.**', 'testuser', 'test13', 
                                 user_info_forms='single',
                                 user_info_form_id=form_one.id, 
                                 user_info_values=user_info_values )
     self.logout()
     self.login( '*****@*****.**' )
     user = sa_session.query( galaxy.model.User ) \
                      .filter( and_( galaxy.model.User.table.c.email=='*****@*****.**' ) ).first()
     self.home()
     page = "admin/users?id=%s&operation=information&f-deleted=False" % self.security.encode_id( user.id )
     self.visit_page( page )
     self.check_page_for_string( 'Manage User Information' )
     self.check_page_for_string( '*****@*****.**' )
     self.check_page_for_string( user_info_values[0] )
     self.check_page_for_string( user_info_values[1] )
     self.check_page_for_string( '<input type="checkbox" name="field_2" value="true" checked>' )
     # lets delete the 'Student' user info form
     self.login( '*****@*****.**' )
     form_one_latest = get_latest_form(form_one_name)
     form_one_latest.current.deleted = True
     sa_session.add( form_one_latest.current )
     sa_session.flush()
     self.home()
     self.visit_page('forms/manage?sort=create_time&f-deleted=True')
     self.check_page_for_string(form_one_latest.name)
     self.logout()
 def test_00_metadata_edit(self):
     """test_metadata_edit: Testing metadata editing"""
     self.logout()
     self.login(email='*****@*****.**', username='******')
     admin_user = sa_session.query( galaxy.model.User ) \
                           .filter( galaxy.model.User.table.c.email=='*****@*****.**' ) \
                           .one()
     self.new_history(name='Test Metadata Edit')
     history1 = sa_session.query( galaxy.model.History ) \
                         .filter( and_( galaxy.model.History.table.c.deleted==False,
                                        galaxy.model.History.table.c.user_id==admin_user.id ) ) \
                         .order_by( desc( galaxy.model.History.table.c.create_time ) ) \
                         .first()
     self.upload_file('1.bed')
     latest_hda = sa_session.query( galaxy.model.HistoryDatasetAssociation ) \
                           .order_by( desc( galaxy.model.HistoryDatasetAssociation.table.c.create_time ) ) \
                           .first()
     self.home()
     # Due to twill not being able to handle the permissions forms, we'll eliminate
     # DefaultHistoryPermissions prior to uploading a dataset so that the permission
     # form will not be displayed on ted edit attributes page.
     for dp in latest_hda.dataset.actions:
         sa_session.delete(dp)
         sa_session.flush()
     sa_session.refresh(latest_hda.dataset)
     self.check_history_for_string('1.bed')
     self.check_metadata_for_string(
         '1.bed uploaded file unspecified (\?) chromCol value="1" selected endCol value="3" is_strandCol value="true" checked',
         hid=str(latest_hda.hid))
     """test editing attributes"""
     self.edit_hda_attribute_info(hda_id=str(latest_hda.id),
                                  new_name='Testdata',
                                  new_info="Uploaded my file",
                                  new_dbkey='hg16',
                                  new_startcol='6')
     self.check_metadata_for_string(
         'Testdata bed Uploaded my file hg16 "bed" selected="yes" "startCol" value="6" selected',
         hid=str(latest_hda.hid))
     """test Auto-detecting attributes"""
     self.auto_detect_metadata(hda_id=str(latest_hda.id))
     self.check_metadata_for_string(
         'Testdata bed Uploaded my file hg16 "bed" selected="yes" "startCol" value="2" selected',
         hid=str(latest_hda.hid))
     """test converting formats"""
     self.convert_format(hda_id=str(latest_hda.id), target_type='gff')
     self.check_metadata_for_string('"gff" selected="yes"',
                                    hid=str(latest_hda.hid))
     """test changing data type"""
     self.change_datatype(hda_id=str(latest_hda.id), datatype='gff3')
     self.check_metadata_for_string('gff3', hid=str(latest_hda.hid))
     self.delete_history(id=self.security.encode_id(history1.id))
     self.logout()
 def test_00_metadata_edit( self ):
     """test_metadata_edit: Testing metadata editing"""
     self.logout()
     self.login( email='*****@*****.**' )
     admin_user = sa_session.query( galaxy.model.User ) \
                           .filter( galaxy.model.User.table.c.email=='*****@*****.**' ) \
                           .one()
     self.new_history( name='Test Metadata Edit' )
     history1 = sa_session.query( galaxy.model.History ) \
                         .filter( and_( galaxy.model.History.table.c.deleted==False,
                                        galaxy.model.History.table.c.user_id==admin_user.id ) ) \
                         .order_by( desc( galaxy.model.History.table.c.create_time ) ) \
                         .first()
     self.upload_file( '1.bed' )
     latest_hda = sa_session.query( galaxy.model.HistoryDatasetAssociation ) \
                           .order_by( desc( galaxy.model.HistoryDatasetAssociation.table.c.create_time ) ) \
                           .first()
     self.home()
     # Due to twill not being able to handle the permissions forms, we'll eliminate
     # DefaultHistoryPermissions prior to uploading a dataset so that the permission
     # form will not be displayed on ted edit attributes page.
     for dp in latest_hda.dataset.actions:
         sa_session.delete( dp )
         sa_session.flush()
     sa_session.refresh( latest_hda.dataset )
     self.check_history_for_string( '1.bed' )
     self.check_metadata_for_string( '1.bed uploaded file unspecified (\?) chromCol value="1" selected endCol value="3" is_strandCol value="true" checked', hid=str( latest_hda.hid ) )
     """test editing attributes"""
     self.edit_hda_attribute_info( hda_id=str( latest_hda.id ),
                                   new_name='Testdata',
                                   new_info="Uploaded my file",
                                   new_dbkey='hg16',
                                   new_startcol='6' )
     self.check_metadata_for_string( 'Testdata bed Uploaded my file hg16 "bed" selected="yes" "startCol" value="6" selected', hid=str( latest_hda.hid ) )
     """test Auto-detecting attributes"""
     self.auto_detect_metadata( hda_id=str( latest_hda.id ) )
     self.check_metadata_for_string('Testdata bed Uploaded my file hg16 "bed" selected="yes" "startCol" value="2" selected', hid=str( latest_hda.hid ) )
     """test converting formats"""
     self.convert_format( hda_id=str( latest_hda.id ), target_type='gff' )
     self.check_metadata_for_string( '"gff" selected="yes"', hid=str( latest_hda.hid ) )
     """test changing data type"""
     self.change_datatype( hda_id=str( latest_hda.id ), datatype='gff3' )
     self.check_metadata_for_string( 'gff3', hid=str( latest_hda.hid ) )
     self.delete_history( id=self.security.encode_id( history1.id ) )
     self.logout()
Exemple #10
0
 def test_020_create_user_as_admin(self):
     ''' Testing creating users as an admin '''
     self.logout()
     self.login('*****@*****.**')
     form_one = get_latest_form(form_one_name)
     user_info_values = ['Educational', 'Penn State', True]
     self.create_user_with_info('*****@*****.**',
                                'testuser',
                                'test13',
                                user_info_forms='single',
                                user_info_form_id=form_one.id,
                                user_info_values=user_info_values)
     self.logout()
     self.login('*****@*****.**')
     user = sa_session.query( galaxy.model.User ) \
                      .filter( and_( galaxy.model.User.table.c.email=='*****@*****.**' ) ).first()
     self.home()
     page = "admin/users?id=%s&operation=information&f-deleted=False" % self.security.encode_id(
         user.id)
     self.visit_page(page)
     self.check_page_for_string('Manage User Information')
     self.check_page_for_string('*****@*****.**')
     self.check_page_for_string(user_info_values[0])
     self.check_page_for_string(user_info_values[1])
     self.check_page_for_string(
         '<input type="checkbox" name="field_2" value="true" checked>')
     # lets delete the 'Student' user info form
     self.login('*****@*****.**')
     form_one_latest = get_latest_form(form_one_name)
     form_one_latest.current.deleted = True
     sa_session.add(form_one_latest.current)
     sa_session.flush()
     self.home()
     self.visit_page('forms/manage?sort=create_time&f-deleted=True')
     self.check_page_for_string(form_one_latest.name)
     self.logout()
def delete_obj( obj ):
    sa_session.delete( obj )
    sa_session.flush()
Exemple #12
0
def mark_obj_deleted(obj):
    obj.deleted = True
    sa_session.add(obj)
    sa_session.flush()
def mark_obj_deleted( obj ):
    obj.deleted = True
    sa_session.add( obj )
    sa_session.flush()
 def test_get_DNAseHSS_flanked_genes( self ):
     self.logout()
     self.login( email='*****@*****.**' )
     admin_user = sa_session.query( galaxy.model.User ) \
                            .filter( galaxy.model.User.table.c.email=='*****@*****.**' ) \
                            .one()
     self.new_history( name='DNAseHSS_flanked_genes' )
     history1 = sa_session.query( galaxy.model.History ) \
                          .filter( and_( galaxy.model.History.table.c.deleted==False,
                                         galaxy.model.History.table.c.user_id==admin_user.id ) ) \
                          .order_by( desc( galaxy.model.History.table.c.create_time ) ) \
                          .first()
     track_params = dict(
         db="hg17",
         hgta_group="regulation",
         hgta_table="dukeDnaseCd4Sites",
         hgta_track="dukeDnaseCd4Sites",
         hgta_regionType="range",
         position="chr22",
         hgta_outputType="bed",
         sendToGalaxy="1"
     )
     output_params = dict(
         fbQual="whole",
     )
     # Test 1
     self.run_ucsc_main( track_params, output_params )
     self.wait()
     self.verify_dataset_correctness('DNAseHSS.dat')
     latest_hda = sa_session.query( galaxy.model.HistoryDatasetAssociation ) \
                            .order_by( desc( galaxy.model.HistoryDatasetAssociation.table.c.create_time ) ) \
                            .first()
     # Due to twill not being able to handle the permissions forms, we'll eliminate
     # DefaultHistoryPermissions prior to uploading a dataset so that the permission
     # form will not be displayed on ted edit attributes page.
     for dp in latest_hda.dataset.actions:
         sa_session.delete( dp )
         sa_session.flush()
     sa_session.refresh( latest_hda.dataset )
     self.edit_hda_attribute_info( str( latest_hda.id ), new_name="DNAse HS" )
     self.check_metadata_for_string( "DNAse HS" )
     track_params = dict(
         db="hg17",
         hgta_group="genes",
         hgta_table="knownGene",
         hgta_track="knownGene",
         hgta_regionType="range",
         position="chr22",
         hgta_outputType="bed",
         sendToGalaxy="1"
     )
     output_params = dict(
         fbQual="whole",
     )
     # Test 2
     self.run_ucsc_main( track_params, output_params )
     self.wait()
     self.verify_dataset_correctness('hg17chr22KnownGenes.dat')
     latest_hda = sa_session.query( galaxy.model.HistoryDatasetAssociation ) \
                            .order_by( desc( galaxy.model.HistoryDatasetAssociation.table.c.create_time ) ) \
                            .first()
     for dp in latest_hda.dataset.actions:
         sa_session.delete( dp )
         sa_session.flush()
     sa_session.refresh( latest_hda.dataset )
     self.edit_hda_attribute_info( str( latest_hda.id ), new_name="Genes" )
     self.check_metadata_for_string( "Genes" )
     # Test 3
     self.run_tool( 'get_flanks1', input="2", region="whole", direction="Upstream", offset="0", size="500" )
     self.wait()
     self.verify_dataset_correctness( 'knownGeneUpstream500Flanks.dat' )
     latest_hda = sa_session.query( galaxy.model.HistoryDatasetAssociation ) \
                            .order_by( desc( galaxy.model.HistoryDatasetAssociation.table.c.create_time ) ) \
                            .first()
     for dp in latest_hda.dataset.actions:
         sa_session.delete( dp )
         sa_session.flush()
     sa_session.refresh( latest_hda.dataset )
     self.edit_hda_attribute_info( str( latest_hda.id ), new_name="Flanks" )
     self.check_metadata_for_string( "Flanks" )
     # Test 4
     self.run_tool( 'gops_join_1', input1="3", input2="1", min="1", fill="none"  )
     self.wait()
     # We cannot verify this dataset, because this tool spits out data in a non-deterministic order
     #self.verify_dataset_correctness( 'joinFlanksDNAse.dat' )
     # Test 5
     self.run_tool( 'Filter1', input="4", cond="c17==1000"  )
     self.wait()
     self.verify_dataset_correctness( 'filteredJoinedFlanksDNAse.dat' )
     self.delete_history( self.security.encode_id( history1.id ) )
     self.logout()
Exemple #15
0
def delete_user_roles(user):
    for ura in user.roles:
        sa_session.delete(ura)
    sa_session.flush()
Exemple #16
0
def flush(obj):
    sa_session.add(obj)
    sa_session.flush()
def delete_user_roles( user ):
    for ura in user.roles:
        sa_session.delete( ura )
    sa_session.flush()
Exemple #18
0
def delete_obj(obj):
    sa_session.delete(obj)
    sa_session.flush()
def flush( obj ):
    sa_session.add( obj )
    sa_session.flush()