[2] | 1 | import galaxy.model |
---|
| 2 | from galaxy.model.orm import * |
---|
| 3 | from base.twilltestcase import * |
---|
| 4 | from base.test_db_util import * |
---|
| 5 | |
---|
| 6 | sample_states = [ ( 'New', 'Sample entered into the system' ), |
---|
| 7 | ( 'Received', 'Sample tube received' ), |
---|
| 8 | ( 'Done', 'Sequence run complete' ) ] |
---|
| 9 | address_dict = dict( short_desc="Office", |
---|
| 10 | name="James Bond", |
---|
| 11 | institution="MI6" , |
---|
| 12 | address="MI6 Headquarters", |
---|
| 13 | city="London", |
---|
| 14 | state="London", |
---|
| 15 | postal_code="007", |
---|
| 16 | country="United Kingdom", |
---|
| 17 | phone="007-007-0007" ) |
---|
| 18 | |
---|
| 19 | class TestFormsAndRequests( TwillTestCase ): |
---|
| 20 | def test_000_initiate_users( self ): |
---|
| 21 | """Ensuring all required user accounts exist""" |
---|
| 22 | self.logout() |
---|
| 23 | self.login( email='test1@bx.psu.edu', username='regular-user1' ) |
---|
| 24 | global regular_user1 |
---|
| 25 | regular_user1 = get_user( 'test1@bx.psu.edu' ) |
---|
| 26 | assert regular_user1 is not None, 'Problem retrieving user with email "test1@bx.psu.edu" from the database' |
---|
| 27 | global regular_user1_private_role |
---|
| 28 | regular_user1_private_role = get_private_role( regular_user1 ) |
---|
| 29 | self.logout() |
---|
| 30 | self.login( email='test2@bx.psu.edu', username='regular-user2' ) |
---|
| 31 | global regular_user2 |
---|
| 32 | regular_user2 = get_user( 'test2@bx.psu.edu' ) |
---|
| 33 | assert regular_user2 is not None, 'Problem retrieving user with email "test2@bx.psu.edu" from the database' |
---|
| 34 | global regular_user2_private_role |
---|
| 35 | regular_user2_private_role = get_private_role( regular_user2 ) |
---|
| 36 | self.logout() |
---|
| 37 | self.login( email='test3@bx.psu.edu', username='regular-user3' ) |
---|
| 38 | global regular_user3 |
---|
| 39 | regular_user3 = get_user( 'test3@bx.psu.edu' ) |
---|
| 40 | assert regular_user3 is not None, 'Problem retrieving user with email "test3@bx.psu.edu" from the database' |
---|
| 41 | global regular_user3_private_role |
---|
| 42 | regular_user3_private_role = get_private_role( regular_user3 ) |
---|
| 43 | self.logout() |
---|
| 44 | self.login( email='test@bx.psu.edu', username='admin-user' ) |
---|
| 45 | global admin_user |
---|
| 46 | admin_user = get_user( 'test@bx.psu.edu' ) |
---|
| 47 | assert admin_user is not None, 'Problem retrieving user with email "test@bx.psu.edu" from the database' |
---|
| 48 | global admin_user_private_role |
---|
| 49 | admin_user_private_role = get_private_role( admin_user ) |
---|
| 50 | def test_005_create_required_groups_and_roles( self ): |
---|
| 51 | """Testing creating all required groups and roles for this script""" |
---|
| 52 | # Logged in as admin_user |
---|
| 53 | # Create role_one |
---|
| 54 | name = 'Role One' |
---|
| 55 | description = "This is Role One's description" |
---|
| 56 | user_ids = [ str( admin_user.id ), str( regular_user1.id ), str( regular_user3.id ) ] |
---|
| 57 | self.create_role( name=name, |
---|
| 58 | description=description, |
---|
| 59 | in_user_ids=user_ids, |
---|
| 60 | in_group_ids=[], |
---|
| 61 | create_group_for_role='no', |
---|
| 62 | private_role=admin_user.email ) |
---|
| 63 | # Get the role object for later tests |
---|
| 64 | global role_one |
---|
| 65 | role_one = get_role_by_name( name ) |
---|
| 66 | # Create group_one |
---|
| 67 | name = 'Group One' |
---|
| 68 | self.create_group( name=name, in_user_ids=[ str( regular_user1.id ) ], in_role_ids=[ str( role_one.id ) ] ) |
---|
| 69 | # Get the group object for later tests |
---|
| 70 | global group_one |
---|
| 71 | group_one = get_group_by_name( name ) |
---|
| 72 | assert group_one is not None, 'Problem retrieving group named "Group One" from the database' |
---|
| 73 | # NOTE: To get this to work with twill, all select lists on the ~/admin/role page must contain at least |
---|
| 74 | # 1 option value or twill throws an exception, which is: ParseError: OPTION outside of SELECT |
---|
| 75 | # Due to this bug in twill, we create the role, we bypass the page and visit the URL in the |
---|
| 76 | # associate_users_and_groups_with_role() method. |
---|
| 77 | # |
---|
| 78 | #create role_two |
---|
| 79 | name = 'Role Two' |
---|
| 80 | description = 'This is Role Two' |
---|
| 81 | user_ids = [ str( admin_user.id ) ] |
---|
| 82 | group_ids = [ str( group_one.id ) ] |
---|
| 83 | private_role = admin_user.email |
---|
| 84 | self.create_role( name=name, |
---|
| 85 | description=description, |
---|
| 86 | in_user_ids=user_ids, |
---|
| 87 | in_group_ids=group_ids, |
---|
| 88 | private_role=private_role ) |
---|
| 89 | # Get the role object for later tests |
---|
| 90 | global role_two |
---|
| 91 | role_two = get_role_by_name( name ) |
---|
| 92 | assert role_two is not None, 'Problem retrieving role named "Role Two" from the database' |
---|
| 93 | def test_010_create_request_form( self ): |
---|
| 94 | """Testing creating a request form definition, editing the name and description and adding fields""" |
---|
| 95 | # Logged in as admin_user |
---|
| 96 | # Create a form definition |
---|
| 97 | tmp_name = "Temp form" |
---|
| 98 | tmp_desc = "Temp form description" |
---|
| 99 | form_type = galaxy.model.FormDefinition.types.REQUEST |
---|
| 100 | self.create_form( name=tmp_name, |
---|
| 101 | desc=tmp_desc, |
---|
| 102 | form_type=form_type, |
---|
| 103 | num_fields=0, |
---|
| 104 | strings_displayed=[ 'Create a new form definition' ], |
---|
| 105 | strings_displayed_after_submit=[ tmp_name, tmp_desc, form_type ] ) |
---|
| 106 | tmp_form = get_form( tmp_name ) |
---|
| 107 | # Edit the name and description of the form definition, and add 3 fields. |
---|
| 108 | new_name = "Request Form" |
---|
| 109 | new_desc = "Request Form description" |
---|
| 110 | global test_field_name1 |
---|
| 111 | test_field_name1 = 'Test field name one' |
---|
| 112 | global test_field_name2 |
---|
| 113 | test_field_name2 = 'Test field name two' |
---|
| 114 | global test_field_name3 |
---|
| 115 | test_field_name3 = 'Test field name three' |
---|
| 116 | field_dicts = [ dict( name=test_field_name1, |
---|
| 117 | desc='Test field description one', |
---|
| 118 | type='SelectField', |
---|
| 119 | required='optional', |
---|
| 120 | selectlist=[ 'option1', 'option2' ] ), |
---|
| 121 | dict( name=test_field_name2, |
---|
| 122 | desc='Test field description two', |
---|
| 123 | type='AddressField', |
---|
| 124 | required='optional' ), |
---|
| 125 | dict( name=test_field_name3, |
---|
| 126 | desc='Test field description three', |
---|
| 127 | type='TextField', |
---|
| 128 | required='required' ) ] |
---|
| 129 | self.edit_form( id=self.security.encode_id( tmp_form.current.id ), |
---|
| 130 | new_form_name=new_name, |
---|
| 131 | new_form_desc=new_desc, |
---|
| 132 | field_dicts=field_dicts, |
---|
| 133 | field_index=len( tmp_form.fields ), |
---|
| 134 | strings_displayed=[ 'Edit form definition "%s"' % tmp_name ], |
---|
| 135 | strings_displayed_after_submit=[ "The form '%s' has been updated with the changes." % new_name ] ) |
---|
| 136 | # Get the form_definition object for later tests |
---|
| 137 | global form_one |
---|
| 138 | form_one = get_form( new_name ) |
---|
| 139 | assert form_one is not None, 'Problem retrieving form named "%s" from the database' % new_name |
---|
| 140 | assert len( form_one.fields ) == len( tmp_form.fields ) + len( field_dicts ) |
---|
| 141 | def test_015_create_sample_form( self ): |
---|
| 142 | """Testing creating sample form definition""" |
---|
| 143 | name = "Sample Form" |
---|
| 144 | desc = "This is Form Two's description" |
---|
| 145 | form_type = galaxy.model.FormDefinition.types.SAMPLE |
---|
| 146 | form_layout_name = 'Layout Grid One' |
---|
| 147 | self.create_form( name=name, |
---|
| 148 | desc=desc, |
---|
| 149 | form_type=form_type, |
---|
| 150 | form_layout_name=form_layout_name, |
---|
| 151 | strings_displayed=[ 'Create a new form definition' ], |
---|
| 152 | strings_displayed_after_submit=[ "The form '%s' has been updated with the changes." % name ] ) |
---|
| 153 | global form_two |
---|
| 154 | form_two = get_form( name ) |
---|
| 155 | assert form_two is not None, "Error retrieving form %s from db" % name |
---|
| 156 | def test_020_create_request_type( self ): |
---|
| 157 | """Testing creating a request_type""" |
---|
| 158 | request_form = get_form( form_one.name ) |
---|
| 159 | sample_form = get_form( form_two.name ) |
---|
| 160 | name = 'Test Requestype' |
---|
| 161 | self.create_request_type( name, |
---|
| 162 | "test sequencer configuration", |
---|
| 163 | self.security.encode_id( request_form.id ), |
---|
| 164 | self.security.encode_id( sample_form.id ), |
---|
| 165 | sample_states, |
---|
| 166 | strings_displayed=[ 'Create a new sequencer configuration' ], |
---|
| 167 | strings_displayed_after_submit=[ "Sequencer configuration (%s) has been created" % name ] ) |
---|
| 168 | global request_type1 |
---|
| 169 | request_type1 = get_request_type_by_name( name ) |
---|
| 170 | assert request_type1 is not None, 'Problem retrieving sequencer configuration named "%s" from the database' % name |
---|
| 171 | # Set permissions |
---|
| 172 | permissions_in = [ k for k, v in galaxy.model.RequestType.permitted_actions.items() ] |
---|
| 173 | permissions_out = [] |
---|
| 174 | # Role one members are: admin_user, regular_user1, regular_user3. Each of these users will be permitted for |
---|
| 175 | # REQUEST_TYPE_ACCESS on this request_type |
---|
| 176 | self.request_type_permissions( self.security.encode_id( request_type1.id ), |
---|
| 177 | request_type1.name, |
---|
| 178 | str( role_one.id ), |
---|
| 179 | permissions_in, |
---|
| 180 | permissions_out ) |
---|
| 181 | # Make sure the request_type1 is not accessible by regular_user2 since regular_user2 does not have Role1. |
---|
| 182 | self.logout() |
---|
| 183 | self.login( email=regular_user2.email ) |
---|
| 184 | self.visit_url( '%s/requests_common/create_request?cntrller=requests&request_type=True' % self.url ) |
---|
| 185 | try: |
---|
| 186 | self.check_page_for_string( 'There are no sequencer configurations created for a new request.' ) |
---|
| 187 | raise AssertionError, 'The request_type %s is accessible by %s when it should be restricted' % ( request_type1.name, regular_user2.email ) |
---|
| 188 | except: |
---|
| 189 | pass |
---|
| 190 | self.logout() |
---|
| 191 | self.login( email=admin_user.email ) |
---|
| 192 | def test_025_create_request( self ): |
---|
| 193 | """Testing creating a sequence run request""" |
---|
| 194 | # logged in as admin_user |
---|
| 195 | # Create a user_address |
---|
| 196 | self.logout() |
---|
| 197 | self.login( email=regular_user1.email ) |
---|
| 198 | self.add_user_address( regular_user1.id, address_dict ) |
---|
| 199 | global user_address1 |
---|
| 200 | user_address1 = get_user_address( regular_user1, address_dict[ 'short_desc' ] ) |
---|
| 201 | # Set field values - the tuples in the field_values list include the field_value, and True if refresh_on_change |
---|
| 202 | # is required for that field. |
---|
| 203 | field_value_tuples = [ ( 'option1', False ), ( str( user_address1.id ), True ), ( 'field three value', False ) ] |
---|
| 204 | # Create the request |
---|
| 205 | name = 'Request One' |
---|
| 206 | desc = 'Request One Description' |
---|
| 207 | self.create_request( cntrller='requests', |
---|
| 208 | request_type_id=self.security.encode_id( request_type1.id ), |
---|
| 209 | name=name, |
---|
| 210 | desc=desc, |
---|
| 211 | field_value_tuples=field_value_tuples, |
---|
| 212 | strings_displayed=[ 'Create a new sequencing request', |
---|
| 213 | test_field_name1, |
---|
| 214 | test_field_name2, |
---|
| 215 | test_field_name3 ], |
---|
| 216 | strings_displayed_after_submit=[ name, desc ] ) |
---|
| 217 | global request_one |
---|
| 218 | request_one = get_request_by_name( name ) |
---|
| 219 | # Make sure the request's state is now set to NEW |
---|
| 220 | assert request_one.state is not request_one.states.NEW, "The state of the request '%s' should be set to '%s'" \ |
---|
| 221 | % ( request_one.name, request_one.states.NEW ) |
---|
| 222 | # Sample fields - the tuple represents a sample name and a list of sample form field values |
---|
| 223 | sample_value_tuples = [ ( 'Sample One', [ 'S1 Field 0 Value' ] ), |
---|
| 224 | ( 'Sample Two', [ 'S2 Field 0 Value' ] ) ] |
---|
| 225 | strings_displayed_after_submit = [ 'Unsubmitted' ] |
---|
| 226 | for sample_name, field_values in sample_value_tuples: |
---|
| 227 | strings_displayed_after_submit.append( sample_name ) |
---|
| 228 | for field_value in field_values: |
---|
| 229 | strings_displayed_after_submit.append( field_value ) |
---|
| 230 | # Add samples to the request |
---|
| 231 | self.add_samples( cntrller='requests', |
---|
| 232 | request_id=self.security.encode_id( request_one.id ), |
---|
| 233 | request_name=request_one.name, |
---|
| 234 | sample_value_tuples=sample_value_tuples, |
---|
| 235 | strings_displayed=[ 'Sequencing Request "%s"' % request_one.name, |
---|
| 236 | 'There are no samples.' ], |
---|
| 237 | strings_displayed_after_submit=strings_displayed_after_submit ) |
---|
| 238 | def test_030_edit_basic_request_info( self ): |
---|
| 239 | """Testing editing the basic information of a sequence run request""" |
---|
| 240 | # logged in as regular_user1 |
---|
| 241 | fields = [ 'option2', str( user_address1.id ), 'field three value (edited)' ] |
---|
| 242 | new_name=request_one.name + ' (Renamed)' |
---|
| 243 | new_desc=request_one.desc + ' (Re-described)' |
---|
| 244 | self.edit_basic_request_info( request_id=self.security.encode_id( request_one.id ), |
---|
| 245 | cntrller='requests', |
---|
| 246 | name=request_one.name, |
---|
| 247 | new_name=new_name, |
---|
| 248 | new_desc=new_desc, |
---|
| 249 | new_fields=fields, |
---|
| 250 | strings_displayed=[ 'Edit sequencing request "%s"' % request_one.name ], |
---|
| 251 | strings_displayed_after_submit=[ new_name, new_desc ] ) |
---|
| 252 | refresh( request_one ) |
---|
| 253 | # check if the request is showing in the 'new' filter |
---|
| 254 | self.check_request_grid( cntrller='requests', |
---|
| 255 | state=request_one.states.NEW, |
---|
| 256 | strings_displayed=[ request_one.name ] ) |
---|
| 257 | def test_035_submit_request( self ): |
---|
| 258 | """Testing editing a sequence run request""" |
---|
| 259 | # logged in as regular_user1 |
---|
| 260 | self.submit_request( cntrller='requests', |
---|
| 261 | request_id=self.security.encode_id( request_one.id ), |
---|
| 262 | request_name=request_one.name, |
---|
| 263 | strings_displayed_after_submit=[ 'The request has been submitted.' ] ) |
---|
| 264 | refresh( request_one ) |
---|
| 265 | # Make sure the request is showing in the 'submitted' filter |
---|
| 266 | self.check_request_grid( cntrller='requests', |
---|
| 267 | state=request_one.states.SUBMITTED, |
---|
| 268 | strings_displayed=[ request_one.name ] ) |
---|
| 269 | # Make sure the request's state is now set to 'submitted' |
---|
| 270 | assert request_one.state is not request_one.states.SUBMITTED, "The state of the request '%s' should be set to '%s'" \ |
---|
| 271 | % ( request_one.name, request_one.states.SUBMITTED ) |
---|
| 272 | def test_040_request_lifecycle( self ): |
---|
| 273 | """Testing request life-cycle as it goes through all the states""" |
---|
| 274 | # logged in as regular_user1 |
---|
| 275 | self.logout() |
---|
| 276 | self.login( email=admin_user.email ) |
---|
| 277 | self.check_request_grid( cntrller='requests_admin', |
---|
| 278 | state=request_one.states.SUBMITTED, |
---|
| 279 | strings_displayed=[ request_one.name ] ) |
---|
| 280 | self.visit_url( "%s/requests_common/manage_request?cntrller=requests&id=%s" % ( self.url, self.security.encode_id( request_one.id ) ) ) |
---|
| 281 | self.check_page_for_string( 'Sequencing Request "%s"' % request_one.name ) |
---|
| 282 | # Set bar codes for the samples |
---|
| 283 | bar_codes = [ '1234567890', '0987654321' ] |
---|
| 284 | strings_displayed_after_submit=[ 'Changes made to the samples are saved.' ] |
---|
| 285 | for bar_code in bar_codes: |
---|
| 286 | strings_displayed_after_submit.append( bar_code ) |
---|
| 287 | self.add_bar_codes( request_id=self.security.encode_id( request_one.id ), |
---|
| 288 | request_name=request_one.name, |
---|
| 289 | bar_codes=bar_codes, |
---|
| 290 | samples=request_one.samples, |
---|
| 291 | strings_displayed_after_submit=strings_displayed_after_submit ) |
---|
| 292 | # Change the states of all the samples of this request to ultimately be COMPLETE |
---|
| 293 | self.change_sample_state( request_id=self.security.encode_id( request_one.id ), |
---|
| 294 | request_name=request_one.name, |
---|
| 295 | sample_names=[ sample.name for sample in request_one.samples ], |
---|
| 296 | sample_ids=[ sample.id for sample in request_one.samples ], |
---|
| 297 | new_sample_state_id=request_type1.states[1].id, |
---|
| 298 | new_state_name=request_type1.states[1].name ) |
---|
| 299 | self.change_sample_state( request_id=self.security.encode_id( request_one.id ), |
---|
| 300 | request_name=request_one.name, |
---|
| 301 | sample_names=[ sample.name for sample in request_one.samples ], |
---|
| 302 | sample_ids=[ sample.id for sample in request_one.samples ], |
---|
| 303 | new_sample_state_id=request_type1.states[2].id, |
---|
| 304 | new_state_name=request_type1.states[2].name ) |
---|
| 305 | refresh( request_one ) |
---|
| 306 | self.logout() |
---|
| 307 | self.login( email=regular_user1.email ) |
---|
| 308 | # check if the request's state is now set to 'complete' |
---|
| 309 | self.check_request_grid( cntrller='requests', |
---|
| 310 | state='Complete', |
---|
| 311 | strings_displayed=[ request_one.name ] ) |
---|
| 312 | assert request_one.state is not request_one.states.COMPLETE, "The state of the request '%s' should be set to '%s'" \ |
---|
| 313 | % ( request_one.name, request_one.states.COMPLETE ) |
---|
| 314 | |
---|
| 315 | def test_045_admin_create_request_on_behalf_of_regular_user( self ): |
---|
| 316 | """Testing creating and submitting a request as an admin on behalf of a regular user""" |
---|
| 317 | # Logged in as regular_user1 |
---|
| 318 | self.logout() |
---|
| 319 | self.login( email=admin_user.email ) |
---|
| 320 | # Create the request |
---|
| 321 | name = "RequestTwo" |
---|
| 322 | desc = 'Request Two Description' |
---|
| 323 | # Set field values - the tuples in the field_values list include the field_value, and True if refresh_on_change |
---|
| 324 | # is required for that field. |
---|
| 325 | field_value_tuples = [ ( 'option2', False ), ( str( user_address1.id ), True ), ( 'field_2_value', False ) ] |
---|
| 326 | self.create_request( cntrller='requests_admin', |
---|
| 327 | request_type_id=self.security.encode_id( request_type1.id ), |
---|
| 328 | other_users_id=self.security.encode_id( regular_user1.id ), |
---|
| 329 | name=name, |
---|
| 330 | desc=desc, |
---|
| 331 | field_value_tuples=field_value_tuples, |
---|
| 332 | strings_displayed=[ 'Create a new sequencing request', |
---|
| 333 | test_field_name1, |
---|
| 334 | test_field_name2, |
---|
| 335 | test_field_name3 ], |
---|
| 336 | strings_displayed_after_submit=[ "The request has been created" ] ) |
---|
| 337 | global request_two |
---|
| 338 | request_two = get_request_by_name( name ) |
---|
| 339 | # Make sure the request is showing in the 'new' filter |
---|
| 340 | self.check_request_grid( cntrller='requests_admin', |
---|
| 341 | state=request_two.states.NEW, |
---|
| 342 | strings_displayed=[ request_two.name ] ) |
---|
| 343 | # Make sure the request's state is now set to 'new' |
---|
| 344 | assert request_two.state is not request_two.states.NEW, "The state of the request '%s' should be set to '%s'" \ |
---|
| 345 | % ( request_two.name, request_two.states.NEW ) |
---|
| 346 | # Sample fields - the tuple represents a sample name and a list of sample form field values |
---|
| 347 | sample_value_tuples = [ ( 'Sample One', [ 'S1 Field 0 Value' ] ), |
---|
| 348 | ( 'Sample Two', [ 'S2 Field 0 Value' ] ) ] |
---|
| 349 | strings_displayed_after_submit = [ 'Unsubmitted' ] |
---|
| 350 | for sample_name, field_values in sample_value_tuples: |
---|
| 351 | strings_displayed_after_submit.append( sample_name ) |
---|
| 352 | for field_value in field_values: |
---|
| 353 | strings_displayed_after_submit.append( field_value ) |
---|
| 354 | # Add samples to the request |
---|
| 355 | self.add_samples( cntrller='requests_admin', |
---|
| 356 | request_id=self.security.encode_id( request_two.id ), |
---|
| 357 | request_name=request_two.name, |
---|
| 358 | sample_value_tuples=sample_value_tuples, |
---|
| 359 | strings_displayed=[ 'Sequencing Request "%s"' % request_two.name, |
---|
| 360 | 'There are no samples.' ], |
---|
| 361 | strings_displayed_after_submit=strings_displayed_after_submit ) |
---|
| 362 | # Submit the request |
---|
| 363 | self.submit_request( cntrller='requests_admin', |
---|
| 364 | request_id=self.security.encode_id( request_two.id ), |
---|
| 365 | request_name=request_two.name, |
---|
| 366 | strings_displayed_after_submit=[ 'The request has been submitted.' ] ) |
---|
| 367 | refresh( request_two ) |
---|
| 368 | # Make sure the request is showing in the 'submitted' filter |
---|
| 369 | self.check_request_grid( cntrller='requests_admin', |
---|
| 370 | state=request_two.states.SUBMITTED, |
---|
| 371 | strings_displayed=[ request_two.name ] ) |
---|
| 372 | # Make sure the request's state is now set to 'submitted' |
---|
| 373 | assert request_two.state is not request_two.states.SUBMITTED, "The state of the request '%s' should be set to '%s'" \ |
---|
| 374 | % ( request_two.name, request_two.states.SUBMITTED ) |
---|
| 375 | # Make sure both requests are showing in the 'All' filter |
---|
| 376 | self.check_request_grid( cntrller='requests_admin', |
---|
| 377 | state='All', |
---|
| 378 | strings_displayed=[ request_one.name, request_two.name ] ) |
---|
| 379 | def test_050_reject_request( self ): |
---|
| 380 | """Testing rejecting a request""" |
---|
| 381 | # Logged in as admin_user |
---|
| 382 | self.reject_request( request_id=self.security.encode_id( request_two.id ), |
---|
| 383 | request_name=request_two.name, |
---|
| 384 | comment="Rejection test comment", |
---|
| 385 | strings_displayed=[ 'Reject Sequencing Request "%s"' % request_two.name ], |
---|
| 386 | strings_displayed_after_submit=[ 'Request (%s) has been rejected.' % request_two.name ] ) |
---|
| 387 | refresh( request_two ) |
---|
| 388 | # Make sure the request is showing in the 'rejected' filter |
---|
| 389 | self.check_request_grid( cntrller='requests_admin', |
---|
| 390 | state=request_two.states.REJECTED, |
---|
| 391 | strings_displayed=[ request_two.name ] ) |
---|
| 392 | # Make sure the request's state is now set to REJECTED |
---|
| 393 | assert request_two.state is not request_two.states.REJECTED, "The state of the request '%s' should be set to '%s'" \ |
---|
| 394 | % ( request_two.name, request_two.states.REJECTED ) |
---|
| 395 | def test_055_reset_data_for_later_test_runs( self ): |
---|
| 396 | """Reseting data to enable later test runs to pass""" |
---|
| 397 | # Logged in as admin_user |
---|
| 398 | ################## |
---|
| 399 | # Delete request_type permissions |
---|
| 400 | ################## |
---|
| 401 | for request_type in [ request_type1 ]: |
---|
| 402 | delete_request_type_permissions( request_type.id ) |
---|
| 403 | ################## |
---|
| 404 | # Mark all request_types deleted |
---|
| 405 | ################## |
---|
| 406 | for request_type in [ request_type1 ]: |
---|
| 407 | mark_obj_deleted( request_type ) |
---|
| 408 | ################## |
---|
| 409 | # Mark all requests deleted |
---|
| 410 | ################## |
---|
| 411 | for request in [ request_one, request_two ]: |
---|
| 412 | mark_obj_deleted( request ) |
---|
| 413 | ################## |
---|
| 414 | # Mark all forms deleted |
---|
| 415 | ################## |
---|
| 416 | for form in [ form_one, form_two ]: |
---|
| 417 | self.mark_form_deleted( self.security.encode_id( form.current.id ) ) |
---|
| 418 | ################## |
---|
| 419 | # Mark all user_addresses deleted |
---|
| 420 | ################## |
---|
| 421 | for user_address in [ user_address1 ]: |
---|
| 422 | mark_obj_deleted( user_address ) |
---|
| 423 | ################## |
---|
| 424 | # Delete all non-private roles |
---|
| 425 | ################## |
---|
| 426 | for role in [ role_one, role_two ]: |
---|
| 427 | self.mark_role_deleted( self.security.encode_id( role.id ), role.name ) |
---|
| 428 | self.purge_role( self.security.encode_id( role.id ), role.name ) |
---|
| 429 | # Manually delete the role from the database |
---|
| 430 | refresh( role ) |
---|
| 431 | delete( role ) |
---|
| 432 | ################## |
---|
| 433 | # Delete all groups |
---|
| 434 | ################## |
---|
| 435 | for group in [ group_one ]: |
---|
| 436 | self.mark_group_deleted( self.security.encode_id( group.id ), group.name ) |
---|
| 437 | self.purge_group( self.security.encode_id( group.id ), group.name ) |
---|
| 438 | # Manually delete the group from the database |
---|
| 439 | refresh( group ) |
---|
| 440 | delete( group ) |
---|