@@ -34,26 +34,27 @@ def test_create_hda_with_ldda_message(self):
34
34
ldda = self ._create_content_in_folder_with_payload (self .root_folder_id , data )
35
35
self ._assert_has_keys (ldda , "name" , "id" )
36
36
37
- def test_create_hdca_with_ldda_message (self ):
37
+ def test_create_hdca (self ):
38
38
contents = ["dataset01" , "dataset02" ]
39
- hdca_id = self ._create_hdca_with_contents (contents )
40
- ldda_message = "Test message"
39
+ hdca_id = self ._create_hdca_with_contents (name = "Test Dataset Collection" , contents = contents )
41
40
data = {
42
41
"from_hdca_id" : hdca_id ,
43
- "ldda_message" : ldda_message ,
44
42
}
45
- lddas = self ._create_content_in_folder_with_payload (self .root_folder_id , data )
46
- assert len (contents ) == len (lddas )
43
+ ldca = self ._create_content_in_folder_with_payload (self .root_folder_id , data )
44
+ self ._assert_has_keys (ldca , "name" , "id" , "element_count" )
45
+ assert ldca ["element_count" ] == len (contents )
47
46
48
47
def test_index (self ):
49
48
folder_id = self ._create_folder_in_library ("Test Folder Contents Index" )
50
49
50
+ self ._create_subfolder_in (folder_id )
51
51
self ._create_dataset_in_folder (folder_id )
52
+ self ._create_dataset_collection_in_folder (folder_id )
52
53
53
54
response = self ._get (f"folders/{ folder_id } /contents" )
54
55
self ._assert_status_code_is (response , 200 )
55
56
contents = response .json ()["folder_contents" ]
56
- assert len (contents ) == 1
57
+ assert len (contents ) == 3
57
58
58
59
def test_index_include_deleted (self ):
59
60
folder_name = "Test Folder Contents Index include deleted"
@@ -82,17 +83,27 @@ def test_index_limit_offset(self):
82
83
for index in range (num_subfolders ):
83
84
self ._create_subfolder_in (folder_id , name = f"Folder_{ index } " )
84
85
86
+ num_collections = 2
87
+ for _ in range (num_collections ):
88
+ self ._create_dataset_collection_in_folder (folder_id )
89
+
85
90
num_datasets = 5
86
91
for _ in range (num_datasets ):
87
92
self ._create_dataset_in_folder (folder_id )
88
93
89
- total_items = num_datasets + num_subfolders
94
+ total_items = num_datasets + num_subfolders + num_collections
90
95
91
96
response = self ._get (f"folders/{ folder_id } /contents" )
92
97
self ._assert_status_code_is (response , 200 )
93
98
original_contents = response .json ()["folder_contents" ]
94
99
assert len (original_contents ) == total_items
95
100
101
+ limit = 2
102
+ response = self ._get (f"folders/{ folder_id } /contents?limit={ limit } " )
103
+ self ._assert_status_code_is (response , 200 )
104
+ contents = response .json ()["folder_contents" ]
105
+ assert len (contents ) == limit
106
+
96
107
limit = 7
97
108
response = self ._get (f"folders/{ folder_id } /contents?limit={ limit } " )
98
109
self ._assert_status_code_is (response , 200 )
@@ -205,9 +216,9 @@ def _create_folder_in_library(self, name: str) -> Any:
205
216
root_folder_id = self .library ["root_folder_id" ]
206
217
return self ._create_subfolder_in (root_folder_id , name )
207
218
208
- def _create_subfolder_in (self , folder_id : str , name : str ) -> str :
219
+ def _create_subfolder_in (self , folder_id : str , name : Optional [ str ] = None ) -> str :
209
220
data = {
210
- "name" : name ,
221
+ "name" : name or "Test Folder" ,
211
222
"description" : f"The description of { name } " ,
212
223
}
213
224
create_response = self ._post (f"folders/{ folder_id } " , data = data )
@@ -223,6 +234,15 @@ def _create_dataset_in_folder(self, folder_id: str, name: Optional[str] = None)
223
234
ldda = self ._create_content_in_folder_with_payload (folder_id , data )
224
235
return ldda ["id" ]
225
236
237
+ def _create_dataset_collection_in_folder (self , folder_id : str , name : Optional [str ] = None , num_items : int = 3 ) -> str :
238
+ contents = [f"dataset{ index } " for index in range (num_items )]
239
+ hdca_id = self ._create_hdca_with_contents (name or "Test Dataset Collection" , contents )
240
+ data = {
241
+ "from_hdca_id" : hdca_id ,
242
+ }
243
+ ldca = self ._create_content_in_folder_with_payload (folder_id , data )
244
+ return ldca ["id" ]
245
+
226
246
def _create_content_in_folder_with_payload (self , folder_id : str , payload ) -> Any :
227
247
create_response = self ._post (f"folders/{ folder_id } /contents" , data = payload )
228
248
self ._assert_status_code_is (create_response , 200 )
@@ -233,8 +253,8 @@ def _create_hda(self, name: Optional[str] = None) -> str:
233
253
hda_id = hda ["id" ]
234
254
return hda_id
235
255
236
- def _create_hdca_with_contents (self , contents : List [str ]) -> str :
237
- hdca = self .dataset_collection_populator .create_list_in_history (self .history_id , contents = contents , direct_upload = True ).json ()["outputs" ][0 ]
256
+ def _create_hdca_with_contents (self , name : str , contents : List [str ]) -> str :
257
+ hdca = self .dataset_collection_populator .create_list_in_history (self .history_id , name = name , contents = contents , direct_upload = True ).json ()["outputs" ][0 ]
238
258
hdca_id = hdca ["id" ]
239
259
return hdca_id
240
260
0 commit comments