Loading lib/galaxy_test/base/populators.py +47 −1 Original line number Diff line number Diff line Loading @@ -483,6 +483,45 @@ class BaseDatasetPopulator(BasePopulator): history_id, content=open(test_data_resolver.get_filename("1.bam"), "rb"), file_type="bam", wait=True ) def new_directory_dataset( self, test_data_resolver: TestDataResolver, history_id: str, directory: str, format: str = "directory" ): directory_path = test_data_resolver.get_filename(directory) assert os.path.isdir(directory_path) tmp = tempfile.NamedTemporaryFile(delete=False) tf = tarfile.open(fileobj=tmp, mode="w:") tf.add(directory_path, ".") tf.close() with open(tmp.name, "rb") as tar_f: destination = {"type": "hdas"} targets = [ { "destination": destination, "items": [ { "src": "pasted", "paste_content": "", "ext": format, "extra_files": { "items_from": "archive", "src": "files", # Prevent Galaxy from checking for a single file in # a directory and re-interpreting the archive "fuzzy_root": False, }, } ], } ] payload = {"history_id": history_id, "targets": targets, "__files": {"files_0|file_data": tar_f}} fetch_response = self.fetch(payload) assert fetch_response.status_code == 200, fetch_response.content outputs = fetch_response.json()["outputs"] assert len(outputs) == 1 return outputs[0] def fetch( self, payload: dict, Loading Loading @@ -3273,8 +3312,9 @@ def load_data_dict( ) -> LoadDataDictResponseT: """Load a dictionary as inputs to a workflow (test data focused).""" def open_test_data(test_dict, mode="rb"): test_data_resolver = TestDataResolver() def open_test_data(test_dict, mode="rb"): filename = test_data_resolver.get_filename(test_dict.pop("value")) return open(filename, mode) Loading Loading @@ -3356,6 +3396,12 @@ def load_data_dict( hda = dataset_populator.new_dataset(history_id, wait=True, **new_dataset_kwds) label_map[key] = dataset_populator.ds_entry(hda) has_uploads = True elif input_type == "Directory": hda = dataset_populator.new_directory_dataset( test_data_resolver, history_id, directory=value["value"], format=value.get("file_type", "directory") ) label_map[key] = dataset_populator.ds_entry(hda) has_uploads = True elif input_type == "raw": label_map[key] = value["value"] inputs[key] = value["value"] Loading lib/galaxy_test/workflow/test_framework_workflows.py +1 −3 Original line number Diff line number Diff line Loading @@ -93,9 +93,7 @@ class TestWorkflow(ApiTestCase): item_label = f"Output named {output_name}" def get_filename(name: str) -> str: return tempfile.NamedTemporaryFile( prefix=f"gx_workflow_framework_test_file_{output_name}", delete=False ).name return self.test_data_resolver.get_filename(name) def verify_dataset(dataset: dict, test_properties: OutputChecks): output_content = self.dataset_populator.get_history_dataset_content( Loading Loading
lib/galaxy_test/base/populators.py +47 −1 Original line number Diff line number Diff line Loading @@ -483,6 +483,45 @@ class BaseDatasetPopulator(BasePopulator): history_id, content=open(test_data_resolver.get_filename("1.bam"), "rb"), file_type="bam", wait=True ) def new_directory_dataset( self, test_data_resolver: TestDataResolver, history_id: str, directory: str, format: str = "directory" ): directory_path = test_data_resolver.get_filename(directory) assert os.path.isdir(directory_path) tmp = tempfile.NamedTemporaryFile(delete=False) tf = tarfile.open(fileobj=tmp, mode="w:") tf.add(directory_path, ".") tf.close() with open(tmp.name, "rb") as tar_f: destination = {"type": "hdas"} targets = [ { "destination": destination, "items": [ { "src": "pasted", "paste_content": "", "ext": format, "extra_files": { "items_from": "archive", "src": "files", # Prevent Galaxy from checking for a single file in # a directory and re-interpreting the archive "fuzzy_root": False, }, } ], } ] payload = {"history_id": history_id, "targets": targets, "__files": {"files_0|file_data": tar_f}} fetch_response = self.fetch(payload) assert fetch_response.status_code == 200, fetch_response.content outputs = fetch_response.json()["outputs"] assert len(outputs) == 1 return outputs[0] def fetch( self, payload: dict, Loading Loading @@ -3273,8 +3312,9 @@ def load_data_dict( ) -> LoadDataDictResponseT: """Load a dictionary as inputs to a workflow (test data focused).""" def open_test_data(test_dict, mode="rb"): test_data_resolver = TestDataResolver() def open_test_data(test_dict, mode="rb"): filename = test_data_resolver.get_filename(test_dict.pop("value")) return open(filename, mode) Loading Loading @@ -3356,6 +3396,12 @@ def load_data_dict( hda = dataset_populator.new_dataset(history_id, wait=True, **new_dataset_kwds) label_map[key] = dataset_populator.ds_entry(hda) has_uploads = True elif input_type == "Directory": hda = dataset_populator.new_directory_dataset( test_data_resolver, history_id, directory=value["value"], format=value.get("file_type", "directory") ) label_map[key] = dataset_populator.ds_entry(hda) has_uploads = True elif input_type == "raw": label_map[key] = value["value"] inputs[key] = value["value"] Loading
lib/galaxy_test/workflow/test_framework_workflows.py +1 −3 Original line number Diff line number Diff line Loading @@ -93,9 +93,7 @@ class TestWorkflow(ApiTestCase): item_label = f"Output named {output_name}" def get_filename(name: str) -> str: return tempfile.NamedTemporaryFile( prefix=f"gx_workflow_framework_test_file_{output_name}", delete=False ).name return self.test_data_resolver.get_filename(name) def verify_dataset(dataset: dict, test_properties: OutputChecks): output_content = self.dataset_populator.get_history_dataset_content( Loading