Skip to content

Commit aa23303

Browse files
committed
Add API tests for 'collections as single item' in folder_contents API
1 parent 9affdc4 commit aa23303

File tree

1 file changed

+32
-12
lines changed

1 file changed

+32
-12
lines changed

lib/galaxy_test/api/test_folder_contents.py

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,27 @@ def test_create_hda_with_ldda_message(self):
3434
ldda = self._create_content_in_folder_with_payload(self.root_folder_id, data)
3535
self._assert_has_keys(ldda, "name", "id")
3636

37-
def test_create_hdca_with_ldda_message(self):
37+
def test_create_hdca(self):
3838
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)
4140
data = {
4241
"from_hdca_id": hdca_id,
43-
"ldda_message": ldda_message,
4442
}
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)
4746

4847
def test_index(self):
4948
folder_id = self._create_folder_in_library("Test Folder Contents Index")
5049

50+
self._create_subfolder_in(folder_id)
5151
self._create_dataset_in_folder(folder_id)
52+
self._create_dataset_collection_in_folder(folder_id)
5253

5354
response = self._get(f"folders/{folder_id}/contents")
5455
self._assert_status_code_is(response, 200)
5556
contents = response.json()["folder_contents"]
56-
assert len(contents) == 1
57+
assert len(contents) == 3
5758

5859
def test_index_include_deleted(self):
5960
folder_name = "Test Folder Contents Index include deleted"
@@ -82,17 +83,27 @@ def test_index_limit_offset(self):
8283
for index in range(num_subfolders):
8384
self._create_subfolder_in(folder_id, name=f"Folder_{index}")
8485

86+
num_collections = 2
87+
for _ in range(num_collections):
88+
self._create_dataset_collection_in_folder(folder_id)
89+
8590
num_datasets = 5
8691
for _ in range(num_datasets):
8792
self._create_dataset_in_folder(folder_id)
8893

89-
total_items = num_datasets + num_subfolders
94+
total_items = num_datasets + num_subfolders + num_collections
9095

9196
response = self._get(f"folders/{folder_id}/contents")
9297
self._assert_status_code_is(response, 200)
9398
original_contents = response.json()["folder_contents"]
9499
assert len(original_contents) == total_items
95100

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+
96107
limit = 7
97108
response = self._get(f"folders/{folder_id}/contents?limit={limit}")
98109
self._assert_status_code_is(response, 200)
@@ -205,9 +216,9 @@ def _create_folder_in_library(self, name: str) -> Any:
205216
root_folder_id = self.library["root_folder_id"]
206217
return self._create_subfolder_in(root_folder_id, name)
207218

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:
209220
data = {
210-
"name": name,
221+
"name": name or "Test Folder",
211222
"description": f"The description of {name}",
212223
}
213224
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)
223234
ldda = self._create_content_in_folder_with_payload(folder_id, data)
224235
return ldda["id"]
225236

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+
226246
def _create_content_in_folder_with_payload(self, folder_id: str, payload) -> Any:
227247
create_response = self._post(f"folders/{folder_id}/contents", data=payload)
228248
self._assert_status_code_is(create_response, 200)
@@ -233,8 +253,8 @@ def _create_hda(self, name: Optional[str] = None) -> str:
233253
hda_id = hda["id"]
234254
return hda_id
235255

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]
238258
hdca_id = hdca["id"]
239259
return hdca_id
240260

0 commit comments

Comments
 (0)