Skip to content

Commit 8e0e1fb

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

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

tests/integration/test_native_upload.py

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,76 @@ 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+
categories=["Test file"]
484+
),
485+
File(filepath="tests/fixtures/add_dir_files/somefile.txt",
486+
dv_dir="subdir",
487+
description="A simple text file",
488+
categories=["Test file"]
489+
),
490+
]
491+
492+
# Act
493+
uploader = DVUploader(files=files)
494+
uploader.upload(
495+
persistent_id=pid,
496+
api_token=API_TOKEN,
497+
dataverse_url=BASE_URL,
498+
n_parallel_uploads=10,
499+
)
500+
501+
# Assert
502+
files = retrieve_dataset_files(
503+
dataverse_url=BASE_URL,
504+
persistent_id=pid,
505+
api_token=API_TOKEN,
506+
)
507+
508+
assert len(files) == 2, f"Expected 2 files, got {len(files)}"
509+
510+
expected_files = [
511+
{
512+
"label": "archive.zip",
513+
"description": "This file should not be unzipped",
514+
"categories": ["Test file"]
515+
},
516+
{
517+
"label": "somefile.txt",
518+
"description": "A simple text file",
519+
"categories": ["Test file"]
520+
},
521+
]
522+
523+
files_as_expected = sorted(
524+
[
525+
{
526+
k: (f[k] if k in f else None)
527+
for k in expected_files[0].keys()
528+
}
529+
for f in files
530+
],
531+
key=lambda x: x["label"]
532+
)
533+
assert files_as_expected == expected_files, (
534+
f"File metadata not as expected: {json.dumps(files, indent=2)}"
535+
)
536+
537+
468538
def test_too_many_zip_files(
469539
self,
470540
credentials,

0 commit comments

Comments
 (0)