Skip to content

Commit ea8a379

Browse files
committed
Add metadata test with zip inside upload package
1 parent ae3e204 commit ea8a379

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

tests/integration/test_native_upload.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,71 @@ def test_zipzip_file_upload(
465465

466466
assert sorted([file["label"] for file in files]) == sorted(expected_files)
467467

468+
def test_metadata_with_zip_files_in_package(self, credentials):
469+
BASE_URL, API_TOKEN = credentials
470+
471+
# Create Dataset
472+
pid = create_dataset(
473+
parent="Root",
474+
server_url=BASE_URL,
475+
api_token=API_TOKEN,
476+
)
477+
478+
# Arrange
479+
files = [
480+
File(filepath="tests/fixtures/archive.zip",
481+
dv_dir="subdir2",
482+
description="This file should not be unzipped"
483+
),
484+
File(filepath="tests/fixtures/add_dir_files/somefile.txt",
485+
dv_dir="subdir",
486+
description="A simple text file"
487+
),
488+
]
489+
490+
# Act
491+
uploader = DVUploader(files=files)
492+
uploader.upload(
493+
persistent_id=pid,
494+
api_token=API_TOKEN,
495+
dataverse_url=BASE_URL,
496+
n_parallel_uploads=10,
497+
)
498+
499+
# Assert
500+
files = retrieve_dataset_files(
501+
dataverse_url=BASE_URL,
502+
persistent_id=pid,
503+
api_token=API_TOKEN,
504+
)
505+
506+
assert len(files) == 2, f"Expected 2 files, got {len(files)}"
507+
508+
expected_files = [
509+
{
510+
"label": "archive.zip",
511+
"directoryLabel": "subdir2",
512+
"description": "This file should not be unzipped"
513+
},
514+
{
515+
"label": "somefile.txt",
516+
"directoryLabel": "subdir",
517+
"description": "A simple text file"
518+
},
519+
]
520+
521+
files_as_expected = sorted(
522+
[
523+
{
524+
k: (f[k] if k in f else None)
525+
for k in expected_files[0].keys()
526+
}
527+
for f in files
528+
],
529+
key=lambda x: x["label"]
530+
)
531+
assert files_as_expected == expected_files
532+
468533
def test_too_many_zip_files(
469534
self,
470535
credentials,

0 commit comments

Comments
 (0)