Skip to content
Snippets Groups Projects
Commit cbb27e63 authored by Enrique Garcia's avatar Enrique Garcia
Browse files

add metadata to upload dir

parent b23c6419
No related branches found
No related tags found
1 merge request!57eossr upload unique function
Pipeline #140894 failed
from pathlib import Path
ROOT_DIR = Path(__file__).parents[1].as_posix()
ROOT_DIR = Path(__file__).absolute().parents[1].as_posix()
__version__ = "0.2"
......@@ -32,7 +32,7 @@ zenodo_sandbox_api_url = "https://sandbox.zenodo.org/api"
class ZenodoAPI:
def __init__(self, access_token, sandbox=True, proj_root_dir=Path(ROOT_DIR).absolute().name):
def __init__(self, access_token, sandbox=True, proj_root_dir=Path(ROOT_DIR)):
"""
Manages the communication with the (sandbox.)zenodo REST API through the Python request library.
The client would allow to perform the following tasks within the (sandbox.)zenodo api environment:
......
......@@ -44,6 +44,7 @@ class SimilarRecordError(Exception):
def upload(zenodo_token, sandbox_flag, upload_directory, zip_root_dir=False, record_id=None, erase_previous_files=True,
force_new_record=False, publish=True):
"""
Must have a metadata file in directory
:param zenodo_token:
:param sandbox_flag:
......@@ -56,10 +57,10 @@ def upload(zenodo_token, sandbox_flag, upload_directory, zip_root_dir=False, rec
:return:
"""
zenodo = ZenodoAPI(access_token=zenodo_token, sandbox=sandbox_flag)
zenodo = ZenodoAPI(access_token=zenodo_token, sandbox=sandbox_flag, proj_root_dir=upload_directory)
print(f"root_dir: {zenodo.root_dir.absolute()}")
print(f"codemeta_file: {zenodo.path_codemeta_file}")
print(f"codemeta_] file exists: {zenodo.path_codemeta_file.exists()}")
print(f"codemeta file exists: {zenodo.path_codemeta_file.exists()}")
print(f"zenodo file exists: {zenodo.path_zenodo_file.exists()}")
# Loads the metadata files if exists
......@@ -75,7 +76,7 @@ def upload(zenodo_token, sandbox_flag, upload_directory, zip_root_dir=False, rec
else:
raise FileNotFoundError("No metadata provided")
metadata_for_check = deepcopy(metadata)
metadata_for_check = {'metadata':metadata}
metadata_for_check['id'] = 1 # fake id to create fake record
record = Record(metadata_for_check)
......
......@@ -5,6 +5,7 @@ import pytest
import subprocess
import pkg_resources
import os
import shutil
from pathlib import Path
from os.path import dirname, realpath, join
from eossr.scripts import eossr_upload_repository
......@@ -57,6 +58,7 @@ def test_help_all_scripts(script):
def test_eossr_upload_repository(tmpdir):
path_test_filename = Path(tmpdir).joinpath('test.txt')
Path(path_test_filename).write_text('Hello World')
shutil.copy(Path(ROOT_DIR).joinpath('codemeta.json'), tmpdir)
published = eossr_upload_repository.upload(zenodo_token=os.getenv('SANDBOX_ZENODO_TOKEN'),
sandbox_flag=True,
upload_directory=tmpdir
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment