@@ -2319,6 +2319,7 @@ def test_associate_sample_locked(self):
2319
2319
2320
2320
base_url = '/api/accounts/{0}/sources/{1}/samples' .format (
2321
2321
dummy_acct_id , dummy_source_id )
2322
+ sample_url = "{0}/{1}" .format (base_url , MOCK_SAMPLE_ID )
2322
2323
2323
2324
# "scan" the sample in
2324
2325
_ = create_dummy_acct (create_dummy_1 = True ,
@@ -2333,7 +2334,8 @@ def test_associate_sample_locked(self):
2333
2334
headers = make_headers (FAKE_TOKEN_ADMIN ))
2334
2335
self .assertEqual (201 , post_resp .status_code )
2335
2336
2336
- # attempt to associate as a regular user
2337
+ # allow users to claim samples not
2338
+ # currently associated with a source
2337
2339
post_resp = self .client .post (
2338
2340
'%s?%s' % (base_url , self .default_lang_querystring ),
2339
2341
content_type = 'application/json' ,
@@ -2345,7 +2347,15 @@ def test_associate_sample_locked(self):
2345
2347
)
2346
2348
2347
2349
# check response code
2348
- self .assertEqual (422 , post_resp .status_code )
2350
+ self .assertEqual (201 , post_resp .status_code )
2351
+
2352
+ # delete as admin so that tearDown doesn't require admin
2353
+ delete_resp = self .client .delete (
2354
+ '%s?%s' % (sample_url , self .default_lang_querystring ),
2355
+ headers = make_headers (FAKE_TOKEN_ADMIN ))
2356
+
2357
+ # verify the delete was successful
2358
+ self .assertEqual (204 , delete_resp .status_code )
2349
2359
2350
2360
# associate as admin user
2351
2361
post_resp = self .client .post (
@@ -2361,6 +2371,21 @@ def test_associate_sample_locked(self):
2361
2371
# check response code
2362
2372
self .assertEqual (201 , post_resp .status_code )
2363
2373
2374
+ # attempt to associate as a regular user
2375
+ # where the sample does have associated source id
2376
+ post_resp = self .client .post (
2377
+ '%s?%s' % (base_url , self .default_lang_querystring ),
2378
+ content_type = 'application/json' ,
2379
+ data = json .dumps (
2380
+ {
2381
+ 'sample_id' : MOCK_SAMPLE_ID ,
2382
+ }),
2383
+ headers = self .dummy_auth
2384
+ )
2385
+
2386
+ # check response code
2387
+ self .assertEqual (422 , post_resp .status_code )
2388
+
2364
2389
def test_edit_sample_locked (self ):
2365
2390
dummy_acct_id , dummy_source_id = create_dummy_source (
2366
2391
"Bo" , Source .SOURCE_TYPE_HUMAN , DUMMY_HUMAN_SOURCE ,
0 commit comments