Skip to content

Commit 5e29307

Browse files
committed
Add metadata test with zip inside upload package
1 parent 1af85a7 commit 5e29307

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
@@ -460,6 +460,76 @@ def test_zipzip_file_upload(
460460

461461
assert sorted([file["label"] for file in files]) == sorted(expected_files)
462462

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

0 commit comments

Comments
 (0)