Skip to content

Commit de4446c

Browse files
authored
Revert "Add global release table subparser (#326)" (#329)
This reverts commit 0ebf5bd.
1 parent 0ebf5bd commit de4446c

5 files changed

Lines changed: 4 additions & 145 deletions

File tree

imap_data_access/__init__.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,7 @@
1919
ScienceFilePath,
2020
SPICEFilePath,
2121
)
22-
from imap_data_access.io import (
23-
download,
24-
query,
25-
query_release_versions,
26-
release,
27-
reprocess,
28-
spice_query,
29-
upload,
30-
)
22+
from imap_data_access.io import download, query, release, reprocess, spice_query, upload
3123
from imap_data_access.processing_input import (
3224
AncillaryInput,
3325
ProcessingInputCollection,
@@ -56,7 +48,6 @@
5648
"SpinInput",
5749
"download",
5850
"query",
59-
"query_release_versions",
6051
"release",
6152
"reprocess",
6253
"spice_query",

imap_data_access/cli.py

Lines changed: 3 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
ScienceFilePath,
3030
generate_imap_file_path,
3131
)
32-
from imap_data_access.io import query, query_release_versions, release, spice_query
32+
from imap_data_access.io import query, release, spice_query
3333
from imap_data_access.utils import ReleaseType
3434
from imap_data_access.webpoda import download_daily_data
3535

@@ -348,12 +348,7 @@ def _release_parser(args: argparse.Namespace):
348348
args : argparse.Namespace
349349
An object containing the parsed arguments and their values
350350
"""
351-
if not getattr(args, "release_type", None):
352-
raise ValueError(
353-
"--release-type is required when submitting a release. "
354-
"Run 'release -h' for more information."
355-
)
356-
# All other validation is handled in io.py
351+
# All validation is now handled in io.py
357352
release(
358353
instrument=args.instrument,
359354
release_type=args.release_type,
@@ -366,11 +361,6 @@ def _release_parser(args: argparse.Namespace):
366361
print("Successfully submitted release request to the IMAP SDC.")
367362

368363

369-
def _release_versions_parser(args: argparse.Namespace):
370-
"""Query the latest global release number from the IMAP SDC."""
371-
print(query_release_versions())
372-
373-
374364
def add_query_args(subparser: ArgumentParser) -> None:
375365
"""Add query arguments to subparser.
376366
@@ -706,31 +696,7 @@ def main():
706696
"release",
707697
help=release_help,
708698
formatter_class=argparse.RawTextHelpFormatter,
709-
description=(
710-
"Submit a release to the IMAP SDC, or use the 'query' subcommand\n"
711-
"to look up the latest global release number.\n\n"
712-
"Examples:\n"
713-
" imap-data-access release --release-type release ...\n"
714-
" imap-data-access release query\n"
715-
),
716699
)
717-
# --- nested subparsers (e.g. `release query`) ---
718-
release_subparsers = parser_release.add_subparsers(dest="release_subcommand")
719-
720-
release_query_parser = release_subparsers.add_parser(
721-
"query",
722-
help="Query the latest global release number.",
723-
description=(
724-
"Query the IMAP SDC latest global release.\n"
725-
"Returns one record with release_number and updated_date.\n\n"
726-
"Example:\n"
727-
" imap-data-access release query\n"
728-
),
729-
formatter_class=argparse.RawTextHelpFormatter,
730-
)
731-
release_query_parser.set_defaults(func=_release_versions_parser)
732-
733-
# --- submit/unrelease arguments
734700
parser_release.add_argument(
735701
"--instrument",
736702
type=str,
@@ -756,7 +722,7 @@ def main():
756722
parser_release.add_argument(
757723
"--release-type",
758724
type=str,
759-
required=False, # enforced in _release_parser when no subcommand is given
725+
required=True,
760726
metavar="ReleaseType",
761727
help=(
762728
"Type of release:\n"

imap_data_access/io.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -536,30 +536,6 @@ def upload(file_path: Union[Path, str]) -> None:
536536
logger.info("File %s uploaded successfully", file_path)
537537

538538

539-
def query_release_versions() -> dict:
540-
"""Query the latest global release in the IMAP SDC.
541-
542-
Returns
543-
-------
544-
dict
545-
Latest global release record containing ``release_number`` and
546-
``updated_date``.
547-
"""
548-
url = f"{_get_base_url()}/global-release/latest"
549-
request = requests.Request(method="GET", url=url).prepare()
550-
551-
logger.info("Querying release versions at url %s", request.url)
552-
with _make_request(request) as response:
553-
payload = response.json()
554-
logger.debug("Received JSON: %s", payload)
555-
556-
if not isinstance(payload, dict):
557-
raise IMAPDataAccessError(
558-
"Unexpected response format for global release latest query."
559-
)
560-
return payload
561-
562-
563539
def release(
564540
*,
565541
instrument: Optional[str] = None,

tests/test_cli.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -49,27 +49,3 @@ def test_cli_error_message(capsys):
4949
cli.main()
5050
captured = capsys.readouterr()
5151
assert "FileNotFoundError" in captured.err
52-
53-
54-
# ---------------------------------------------------------------------------
55-
# release query CLI tests
56-
# ---------------------------------------------------------------------------
57-
RELEASE_VERSION_RECORD = {
58-
"release_number": 1,
59-
"updated_date": "2026-04-01T00:00:00",
60-
}
61-
62-
63-
def test_cli_release_query(capsys):
64-
"""Test that `release query` returns the latest global release dict."""
65-
with mock.patch.object(sys, "argv", ["imap-data-access", "release", "query"]):
66-
with mock.patch(
67-
"imap_data_access.cli.query_release_versions",
68-
return_value=RELEASE_VERSION_RECORD,
69-
) as mock_qrv:
70-
cli.main()
71-
72-
captured = capsys.readouterr()
73-
assert "release_number" in captured.out
74-
assert "updated_date" in captured.out
75-
mock_qrv.assert_called_once_with()

tests/test_io.py

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -959,53 +959,3 @@ def test_release_early_release_with_manifest(mock_send_request, api_key, tmp_pat
959959
last_request = mock_send_request.call_args[0][0]
960960
assert "/release" in last_request.url
961961
assert "manifest_file=" in last_request.url
962-
963-
964-
# ---------------------------------------------------------------------------
965-
# query_release_versions tests
966-
# ---------------------------------------------------------------------------
967-
968-
RELEASE_VERSION_RECORD = {
969-
"release_number": 1,
970-
"updated_date": "2026-04-01T00:00:00",
971-
}
972-
973-
974-
def test_query_release_versions(mock_send_request):
975-
"""Test a basic call to query_release_versions hits /global-release/latest.
976-
977-
Parameters
978-
----------
979-
mock_send_request : unittest.mock.MagicMock
980-
Mock object for requests.Session
981-
"""
982-
mock_response = MagicMock()
983-
mock_response.json.return_value = RELEASE_VERSION_RECORD
984-
mock_send_request.return_value = mock_response
985-
986-
results = imap_data_access.query_release_versions()
987-
assert results == RELEASE_VERSION_RECORD
988-
989-
mock_send_request.assert_called_once()
990-
sent_request = mock_send_request.call_args[0][0]
991-
assert sent_request.url == "https://api.test.com/global-release/latest"
992-
assert sent_request.method == "GET"
993-
994-
995-
def test_query_release_versions_bad_payload(mock_send_request):
996-
"""Test that query_release_versions rejects non-dict responses.
997-
998-
Parameters
999-
----------
1000-
mock_send_request : unittest.mock.MagicMock
1001-
Mock object for requests.Session
1002-
"""
1003-
mock_response = MagicMock()
1004-
mock_response.json.return_value = []
1005-
mock_send_request.return_value = mock_response
1006-
1007-
with pytest.raises(
1008-
imap_data_access.io.IMAPDataAccessError, match="Unexpected response"
1009-
):
1010-
imap_data_access.query_release_versions()
1011-
mock_send_request.assert_called_once()

0 commit comments

Comments
 (0)