From 287027d965c1b5a3d63e447fee242fa06fa0ad3d Mon Sep 17 00:00:00 2001 From: Joseph Muller Date: Mon, 29 Sep 2025 16:37:19 +0100 Subject: [PATCH] feat #3970 Test journals use test server --- plugin_settings.py | 3 ++- utils.py | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugin_settings.py b/plugin_settings.py index 7935894..8e6c786 100644 --- a/plugin_settings.py +++ b/plugin_settings.py @@ -18,12 +18,13 @@ DATACITE_PASSWORD = '' DATACITE_PREFIX = '' DATACITE_API_URL = 'https://api.datacite.org/dois' +DATACITE_API_TEST_URL = 'https://api.test.datacite.org/dois' JOURNAL_PREFIX = True MINT_AUTOMATICALLY = False REDEPOSIT_BUTTON = False if settings.DEBUG: - DATACITE_API_URL = 'https://api.test.datacite.org/dois' # Use test in debug mode. + DATACITE_API_URL = DATACITE_API_TEST_URL # Use test in debug mode. class DatacitePlugin(plugins.Plugin): diff --git a/utils.py b/utils.py index 7a8bcea..a11307a 100644 --- a/utils.py +++ b/utils.py @@ -7,6 +7,7 @@ from plugins.datacite import plugin_settings from identifiers import models as ident_models from utils import setting_handler +from journal.models import Journal def prep_data(article, doi, event=None): @@ -130,7 +131,11 @@ def mint_datacite_doi(article, doi, event=None): if event == 'publish' and article.get_doi(): # The DOI will exists and we should use a PUT command - url = '{}/{}'.format(plugin_settings.DATACITE_API_URL, article.get_doi()) + api_url = plugin_settings.DATACITE_API_URL + if hasattr(article.journal, "status"): + if article.journal.status == Journal.PublishingStatus.TEST: + api_url = plugin_settings.DATACITE_API_TEST_URL + url = '{}/{}'.format(api_url, article.get_doi()) response = requests.put( url=url, json=prep_data(article, doi, event),