@@ -32,6 +32,10 @@ class Tarball:
32
32
access : str
33
33
34
34
35
+ def all_tarballs () -> list [Path ]:
36
+ return list (TARBALL_DIR .glob ("*.tar.xz" )) + list (SPECIAL_DIR .glob ("*.tar.xz" ))
37
+
38
+
35
39
class TestPut :
36
40
"""Test success and failure cases of PUT dataset upload"""
37
41
@@ -198,12 +202,6 @@ def test_archive_only(server_client: PbenchServerClient, login_user):
198
202
assert operations ["UPLOAD" ]["state" ] == "OK"
199
203
assert "INDEX" not in operations
200
204
201
- # Delete it so we can run the test case again without manual cleanup
202
- response = server_client .remove (md5 )
203
- assert (
204
- response .ok
205
- ), f"delete failed with { response .status_code } , { response .text } "
206
-
207
205
@staticmethod
208
206
def test_no_metadata (server_client : PbenchServerClient , login_user ):
209
207
"""Test handling for a tarball without a metadata.log.
@@ -248,12 +246,6 @@ def test_no_metadata(server_client: PbenchServerClient, login_user):
248
246
assert operations ["UPLOAD" ]["state" ] == "OK"
249
247
assert "INDEX" not in operations
250
248
251
- # Delete it so we can run the test case again without manual cleanup
252
- response = server_client .remove (md5 )
253
- assert (
254
- response .ok
255
- ), f"delete failed with { response .status_code } , { response .text } "
256
-
257
249
@staticmethod
258
250
def check_indexed (server_client : PbenchServerClient , datasets ):
259
251
indexed = []
@@ -402,7 +394,9 @@ def test_details(self, server_client: PbenchServerClient, login_user):
402
394
== detail ["runMetadata" ]["script" ]
403
395
)
404
396
else :
405
- assert response .status_code == HTTPStatus .CONFLICT
397
+ assert (
398
+ response .status_code == HTTPStatus .CONFLICT
399
+ ), f"Unexpected { response .json ()['message' ]} "
406
400
print (f"\t \t ... { d .name } is archiveonly" )
407
401
408
402
@@ -439,7 +433,7 @@ def test_list_api_key(self, server_client: PbenchServerClient, login_user):
439
433
440
434
expected = [
441
435
{"resource_id" : Dataset .md5 (f ), "name" : Dataset .stem (f ), "metadata" : {}}
442
- for f in TARBALL_DIR . glob ( "*.tar.xz" )
436
+ for f in all_tarballs ( )
443
437
]
444
438
expected .sort (key = lambda e : e ["resource_id" ])
445
439
actual = [d .json for d in datasets ]
@@ -583,6 +577,8 @@ def test_contents(self, server_client: PbenchServerClient, login_user):
583
577
metadata = ["server.archiveonly" ],
584
578
)
585
579
580
+ with_toc = False
581
+ without_toc = False
586
582
for dataset in datasets :
587
583
response = server_client .get (
588
584
API .DATASETS_CONTENTS ,
@@ -591,9 +587,14 @@ def test_contents(self, server_client: PbenchServerClient, login_user):
591
587
)
592
588
archive = dataset .metadata ["server.archiveonly" ]
593
589
if archive :
594
- assert response .status_code == HTTPStatus .CONFLICT
595
- return
590
+ assert (
591
+ response .status_code == HTTPStatus .CONFLICT
592
+ ), f"Unexpected { response .json ()['message' ]} "
593
+ assert response .json ()["message" ] == "Dataset indexing was disabled"
594
+ without_toc = True
595
+ continue
596
596
597
+ with_toc = True
597
598
assert (
598
599
response .ok
599
600
), f"CONTENTS { dataset .name } failed { response .status_code } :{ response .json ()['message' ]} "
@@ -625,6 +626,7 @@ def test_contents(self, server_client: PbenchServerClient, login_user):
625
626
{"dataset" : dataset .resource_id , "target" : f ["name" ]},
626
627
)
627
628
assert f ["uri" ] == uri , f"{ f ['name' ]} uri is incorrect: { f ['uri' ]} "
629
+ assert with_toc and without_toc , "expected archiveonly and indexed datasets"
628
630
629
631
@pytest .mark .dependency (name = "visualize" , depends = ["upload" ], scope = "session" )
630
632
def test_visualize (self , server_client : PbenchServerClient , login_user ):
@@ -778,7 +780,7 @@ def test_delete_all(self, server_client: PbenchServerClient, login_user):
778
780
f"Unexpected HTTP error, url = { exc .response .url } , status code"
779
781
f" = { exc .response .status_code } , text = { exc .response .text !r} "
780
782
)
781
- for t in TARBALL_DIR . glob ( "*.tar.xz" ):
783
+ for t in all_tarballs ( ):
782
784
resource_id = datasets_hash .get (t .name )
783
785
assert resource_id , f"Expected to find tar ball { t .name } to delete"
784
786
response = server_client .remove (resource_id )
0 commit comments