Skip to content

Commit fe72d9b

Browse files
committed
Add metadata test with zip inside upload package
1 parent 9ad752c commit fe72d9b

1 file changed

Lines changed: 70 additions & 0 deletions

File tree

tests/integration/test_native_upload.py

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,76 @@ def test_zipzip_file_upload(
464464

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

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

0 commit comments

Comments
 (0)