Skip to content
Snippets Groups Projects
Commit bbbac5a5 authored by Vuillaume's avatar Vuillaume
Browse files

Merge branch 'test_publish' into 'master'

avoid publishing in sandbox unit test

See merge request !154
parents f2334883 90fc40cf
No related branches found
No related tags found
1 merge request!154avoid publishing in sandbox unit test
Pipeline #164070 passed
......@@ -58,16 +58,12 @@ 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)
record_id = eossr_upload_repository.upload(
eossr_upload_repository.upload(
zenodo_token=os.getenv('SANDBOX_ZENODO_TOKEN'),
sandbox_flag=True,
upload_directory=tmpdir,
force_new_record=True,
)
Path(path_test_filename).write_text('Hello World 2')
eossr_upload_repository.upload(
zenodo_token=os.getenv('SANDBOX_ZENODO_TOKEN'), sandbox_flag=True, upload_directory=tmpdir, record_id=record_id
publish=False,
)
......@@ -84,3 +80,9 @@ def test_eossr_metadata_validator_not_valid():
path_test_codemeta = SAMPLES_DIR.joinpath('codemeta_not_valid.json')
run_script('eossr-metadata-validator', path_test_codemeta, '--catch-all-errors')
def test_user_entries_cleanup():
from eossr.scripts.zenodo_user_entries_cleanup import zenodo_cleanup
zenodo_cleanup(token=os.getenv('SANDBOX_ZENODO_TOKEN'), sandbox=True)
"""
Simple code to delete all user entries that have not been published
"""
import os
from eossr.api.zenodo import ZenodoAPI
# token can be passed directly here
zen = ZenodoAPI(os.getenv('SANDBOX_ZENODO_TOKEN'), sandbox=True)
use = zen.query_user_entries()
for rec in use.json():
if not rec['submitted']:
print(f"Record {rec['id']} ... ")
zen.erase_entry(rec['id'])
"""
Simple code to delete all user entries that have not been published
"""
import argparse
import os
from eossr.api.zenodo import ZenodoAPI
def zenodo_cleanup(token, sandbox=True):
"""
Delete user unpublished entries
:param token: str
Zenodo access token
:param sandbox: bool
True to use sandbox
"""
zen = ZenodoAPI(token, sandbox=sandbox)
use = zen.query_user_entries()
for rec in use.json():
if not rec['submitted']:
print(f"Record {rec['id']} ... ")
zen.erase_entry(rec['id'])
def main():
parser = argparse.ArgumentParser(description="Delete user unpublished entries. Working on sandbox by default.")
parser.add_argument(
'--token',
'-t',
type=str,
default=os.getenv('SANDBOX_ZENODO_TOKEN'),
help='Access token',
)
parser.add_argument('--not-sandbox', action='store_false', help="To work on the actual Zenodo instead of sandbox")
args = parser.parse_args()
zenodo_cleanup(args.token, args.not_sandbox)
if __name__ == '__main__':
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment