diff --git a/docs/dev_guide.rst b/docs/dev_guide.rst index 40d891f..02b421b 100644 --- a/docs/dev_guide.rst +++ b/docs/dev_guide.rst @@ -44,6 +44,16 @@ will run checks on the code style using precommit hooks. ``pytest`` ========== +.. note:: + + We run the test suite with the beta version of the Helioviewer API. + So if you run **pytest** without it, the tests will fail. + This is set automatically when you use **tox**. + + There are two ways to change this. + 1. Set the environment variable ``HELIOVIEWER_API_URL`` to ``https://api.beta.helioviewer.org/v2/``. + 2. Add ``HELIOVIEWER_API_URL="https://api.beta.helioviewer.org/v2/"`` to the command line when you run **pytest**. + The test suite can also be run directly from the native ``pytest`` command, which is generally faster than using tox for iterative development. In this case, it is important for developers to be aware that they must manually rebuild any extensions by running:: diff --git a/hvpy/api_groups/jpeg2000/tests/test_get_jp2_header.py b/hvpy/api_groups/jpeg2000/tests/test_get_jp2_header.py index 5c0d289..7b523bd 100644 --- a/hvpy/api_groups/jpeg2000/tests/test_get_jp2_header.py +++ b/hvpy/api_groups/jpeg2000/tests/test_get_jp2_header.py @@ -5,12 +5,12 @@ def test_getJP2HeaderInputParameters(): - response = getJP2Header(id=9838343) + response = getJP2Header(id=7654321) assert isinstance(response, str) assert response.startswith("") - response = getJP2Header(id=9838343, callback="my_callback") + response = getJP2Header(id=7654321, callback="my_callback") assert isinstance(response, str) assert response.startswith("my_callback(") @@ -22,4 +22,4 @@ def test_error_handling(): def test_url_property(): params = getJP2HeaderInputParameters(id=9838343) - assert params.url == "https://api.helioviewer.org/v2/getJP2Header/" + assert params.url == "https://api.beta.helioviewer.org/v2/getJP2Header/" diff --git a/hvpy/api_groups/jpeg2000/tests/test_get_jp2_image.py b/hvpy/api_groups/jpeg2000/tests/test_get_jp2_image.py index c2a0ce4..855f800 100644 --- a/hvpy/api_groups/jpeg2000/tests/test_get_jp2_image.py +++ b/hvpy/api_groups/jpeg2000/tests/test_get_jp2_image.py @@ -1,36 +1,34 @@ -from datetime import datetime - import pytest from hvpy import getJP2Image from hvpy.api_groups.jpeg2000.get_jp2_image import getJP2ImageInputParameters -def test_str_response(): - response = getJP2Image(date=datetime(2022, 1, 1, 23, 59, 59), sourceId=14, jpip=True, json=False) +def test_str_response(date): + response = getJP2Image(date=date, sourceId=14, jpip=True, json=False) assert isinstance(response, str) assert response.startswith("jpip://") -def test_json_response(): - response = getJP2Image(date=datetime(2022, 1, 1, 23, 59, 59), sourceId=14, jpip=True, json=True) +def test_json_response(date): + response = getJP2Image(date=date, sourceId=14, jpip=True, json=True) assert isinstance(response, dict) assert "uri" in response assert response["uri"].startswith("jpip://") -def test_raw_response(): - response = getJP2Image(date=datetime(2022, 1, 1, 23, 59, 59), sourceId=14, jpip=False, json=False) +def test_raw_response(date): + response = getJP2Image(date=date, sourceId=14, jpip=False, json=False) assert isinstance(response, bytes) -def test_raw_response_with_json(): - response = getJP2Image(date=datetime(2022, 1, 1, 23, 59, 59), sourceId=14, jpip=False, json=True) +def test_raw_response_with_json(date): + response = getJP2Image(date=date, sourceId=14, jpip=False, json=True) assert isinstance(response, bytes) -def test_default_response(): - response = getJP2Image(date=datetime(2022, 1, 1, 23, 59, 59), sourceId=14) +def test_default_response(date): + response = getJP2Image(date=date, sourceId=14) assert isinstance(response, bytes) @@ -39,7 +37,7 @@ def test_error_handling(): getJP2Image(sourceId=14, jpip=True, json=True) -def test_url_property(): - params = {"date": datetime(2022, 1, 1, 23, 59, 59), "sourceId": 14, "jpip": True, "json": True} +def test_url_property(date): + params = {"date": date, "sourceId": 14, "jpip": True, "json": True} params = getJP2ImageInputParameters(**params) - assert params.url == "https://api.helioviewer.org/v2/getJP2Image/" + assert params.url == "https://api.beta.helioviewer.org/v2/getJP2Image/" diff --git a/hvpy/api_groups/jpeg2000/tests/test_get_jpx.py b/hvpy/api_groups/jpeg2000/tests/test_get_jpx.py index 7c6089a..80fe3d5 100644 --- a/hvpy/api_groups/jpeg2000/tests/test_get_jpx.py +++ b/hvpy/api_groups/jpeg2000/tests/test_get_jpx.py @@ -1,75 +1,75 @@ -from datetime import datetime - import pytest from hvpy import getJPX from hvpy.api_groups.jpeg2000.get_jpx import getJPXInputParameters -def test_raw_response(): +def test_raw_response(start_time, end_time): response = getJPX( - startTime=datetime(2014, 1, 1, 0, 0, 0), - endTime=datetime(2014, 1, 1, 0, 45, 0), + startTime=start_time, + endTime=end_time, sourceId=14, linked=False, verbose=False, jpip=False, - cadence=None, + cadence=60, ) assert isinstance(response, bytes) -def test_str_response(): +def test_str_response(start_time, end_time): response = getJPX( - startTime=datetime(2014, 1, 1, 0, 0, 0), - endTime=datetime(2014, 1, 1, 0, 45, 0), + startTime=start_time, + endTime=end_time, sourceId=14, linked=False, verbose=False, jpip=True, - cadence=None, + cadence=60, ) assert isinstance(response, str) assert response.startswith("jpip://") -def test_json_response(): +def test_json_response(start_time, end_time): response = getJPX( - startTime=datetime(2014, 1, 1, 0, 0, 0), - endTime=datetime(2014, 1, 1, 0, 45, 0), + startTime=start_time, + endTime=end_time, sourceId=14, linked=False, verbose=True, jpip=True, - cadence=None, + cadence=60, ) assert isinstance(response, dict) assert response["uri"].startswith("jpip://") response = getJPX( - startTime=datetime(2014, 1, 1, 0, 0, 0), - endTime=datetime(2014, 1, 1, 0, 45, 0), + startTime=start_time, + endTime=end_time, sourceId=14, linked=False, verbose=True, jpip=False, - cadence=None, + cadence=60, ) assert isinstance(response, dict) assert response["uri"].startswith("https://") -def test_error_handling(): +def test_error_handling(start_time, end_time): with pytest.raises(TypeError, match="missing 1 required positional argument: 'startTime'"): - getJPX(endTime=datetime(2014, 1, 1, 0, 45, 0), sourceId=14) + getJPX(endTime=end_time, sourceId=14) with pytest.raises(TypeError, match="missing 1 required positional argument: 'endTime'"): - getJPX(startTime=datetime(2014, 1, 1, 0, 0, 0), sourceId=14) + getJPX(startTime=start_time, sourceId=14) with pytest.raises(TypeError, match="missing 1 required positional argument: 'sourceId'"): - getJPX(startTime=datetime(2014, 1, 1, 0, 0, 0), endTime=datetime(2014, 1, 1, 0, 45, 0)) + getJPX(startTime=start_time, endTime=end_time) -def test_url_property(): +def test_url_property(start_time, end_time): params = getJPXInputParameters( - startTime=datetime(2014, 1, 1, 0, 0, 0), endTime=datetime(2014, 1, 1, 0, 45, 0), sourceId=14 + startTime=start_time, + endTime=end_time, + sourceId=14, ) - assert params.url == "https://api.helioviewer.org/v2/getJPX/" + assert params.url == "https://api.beta.helioviewer.org/v2/getJPX/" diff --git a/hvpy/api_groups/jpeg2000/tests/test_get_jpx_closest_to_mid_point.py b/hvpy/api_groups/jpeg2000/tests/test_get_jpx_closest_to_mid_point.py index 93d6178..a97224b 100644 --- a/hvpy/api_groups/jpeg2000/tests/test_get_jpx_closest_to_mid_point.py +++ b/hvpy/api_groups/jpeg2000/tests/test_get_jpx_closest_to_mid_point.py @@ -1,52 +1,47 @@ -from datetime import datetime - import pytest from hvpy import getJPXClosestToMidPoint from hvpy.api_groups.jpeg2000.get_jpx_closest_to_mid_point import getJPXClosestToMidPointInputParameters -startTimes = [datetime(2014, 1, 1, 0, 0, 0), datetime(2014, 1, 1, 2, 3, 3), datetime(2014, 1, 1, 4, 5, 5)] -endTimes = [datetime(2014, 1, 1, 0, 45, 0), datetime(2014, 1, 1, 2, 33, 3), datetime(2014, 1, 1, 4, 54, 5)] - -def test_raw_response(): +def test_raw_response(start_times, end_times): response = getJPXClosestToMidPoint( - startTimes=startTimes, endTimes=endTimes, sourceId=14, linked=False, verbose=False, jpip=False + startTimes=start_times, endTimes=end_times, sourceId=14, linked=False, verbose=False, jpip=False ) assert isinstance(response, bytes) -def test_str_response(): +def test_str_response(start_times, end_times): response = getJPXClosestToMidPoint( - startTimes=startTimes, endTimes=endTimes, sourceId=14, linked=False, verbose=False, jpip=True + startTimes=start_times, endTimes=end_times, sourceId=14, linked=False, verbose=False, jpip=True ) assert isinstance(response, str) assert response.startswith("jpip://") -def test_json_response(): +def test_json_response(start_times, end_times): response = getJPXClosestToMidPoint( - startTimes=startTimes, endTimes=endTimes, sourceId=14, linked=False, verbose=True, jpip=True + startTimes=start_times, endTimes=end_times, sourceId=14, linked=False, verbose=True, jpip=True ) assert isinstance(response, dict) assert response["uri"].startswith("jpip://") response = getJPXClosestToMidPoint( - startTimes=startTimes, endTimes=endTimes, sourceId=14, linked=False, verbose=True, jpip=False + startTimes=start_times, endTimes=end_times, sourceId=14, linked=False, verbose=True, jpip=False ) assert isinstance(response, dict) assert response["uri"].startswith("https://") -def test_error_handling(): +def test_error_handling(start_times, end_times): with pytest.raises(TypeError, match="missing 1 required positional argument: 'startTimes'"): - getJPXClosestToMidPoint(endTimes=endTimes, sourceId=14) + getJPXClosestToMidPoint(endTimes=end_times, sourceId=14) with pytest.raises(TypeError, match="missing 1 required positional argument: 'endTimes'"): - getJPXClosestToMidPoint(startTimes=startTimes, sourceId=14) + getJPXClosestToMidPoint(startTimes=start_times, sourceId=14) with pytest.raises(TypeError, match="missing 1 required positional argument: 'sourceId'"): - getJPXClosestToMidPoint(startTimes=startTimes, endTimes=endTimes) + getJPXClosestToMidPoint(startTimes=start_times, endTimes=end_times) -def test_url_property(): - params = getJPXClosestToMidPointInputParameters(startTimes=startTimes, endTimes=endTimes, sourceId=14) - assert params.url == "https://api.helioviewer.org/v2/getJPXClosestToMidPoint/" +def test_url_property(start_times, end_times): + params = getJPXClosestToMidPointInputParameters(startTimes=start_times, endTimes=end_times, sourceId=14) + assert params.url == "https://api.beta.helioviewer.org/v2/getJPXClosestToMidPoint/" diff --git a/hvpy/api_groups/jpeg2000/tests/test_get_status.py b/hvpy/api_groups/jpeg2000/tests/test_get_status.py index e0e7acf..5bdb5ca 100644 --- a/hvpy/api_groups/jpeg2000/tests/test_get_status.py +++ b/hvpy/api_groups/jpeg2000/tests/test_get_status.py @@ -9,4 +9,4 @@ def test_getStatusInputParameters(): def test_url_property(): params = getStatusInputParameters() - assert params.url == "https://api.helioviewer.org/v2/getStatus/" + assert params.url == "https://api.beta.helioviewer.org/v2/getStatus/" diff --git a/hvpy/api_groups/movies/tests/test_get_movie_status.py b/hvpy/api_groups/movies/tests/test_get_movie_status.py index 977bfba..7a11609 100644 --- a/hvpy/api_groups/movies/tests/test_get_movie_status.py +++ b/hvpy/api_groups/movies/tests/test_get_movie_status.py @@ -6,7 +6,7 @@ def test_json_response(): response = getMovieStatus( - id="VXvX5", + id="h2n6n", format="mp4", ) assert response["url"] is not None @@ -15,7 +15,7 @@ def test_json_response(): def test_str_response(): response = getMovieStatus( - id="VXvX5", + id="h2n6n", format="mp4", callback="myCallback", ) @@ -45,4 +45,4 @@ def test_url_property(): id="VXvX5", format="mp4", ) - assert params.url == "https://api.helioviewer.org/v2/getMovieStatus/" + assert params.url == "https://api.beta.helioviewer.org/v2/getMovieStatus/" diff --git a/hvpy/api_groups/movies/tests/test_queue_movie.py b/hvpy/api_groups/movies/tests/test_queue_movie.py index 44a04e3..af1ad0d 100644 --- a/hvpy/api_groups/movies/tests/test_queue_movie.py +++ b/hvpy/api_groups/movies/tests/test_queue_movie.py @@ -1,15 +1,13 @@ -from datetime import datetime - import pytest from hvpy import queueMovie from hvpy.api_groups.movies.queue_movie import queueMovieInputParameters -def test_json_response(): +def test_json_response(start_time, end_time): response = queueMovie( - startTime=datetime(2022, 7, 20, 12, 12, 12), - endTime=datetime(2022, 7, 21, 12, 12, 12), + startTime=start_time, + endTime=end_time, layers="[12,7,22],[13,7,22]", events="[AR,HMI_HARP;SPoCA,1],[CH,all,1]", eventsLabels=False, @@ -21,24 +19,24 @@ def test_json_response(): assert response["token"] is not None -def test_error_handling(): +def test_error_handling(start_time, end_time): with pytest.raises(TypeError, match="missing 1 required positional argument: 'imageScale'"): queueMovie( - startTime=datetime(2022, 7, 20, 12, 12, 12), - endTime=datetime(2022, 7, 21, 12, 12, 12), + startTime=start_time, + endTime=end_time, layers="[12,7,22],[13,7,22]", events="[AR,HMI_HARP;SPoCA,1],[CH,all,1]", eventsLabels=False, ) -def test_url_property(): +def test_url_property(start_time, end_time): params = queueMovieInputParameters( - startTime=datetime(2022, 7, 20, 12, 12, 12), - endTime=datetime(2022, 7, 21, 12, 12, 12), + startTime=start_time, + endTime=end_time, layers="[12,7,22],[13,7,22]", events="[AR,HMI_HARP;SPoCA,1],[CH,all,1]", eventsLabels=False, imageScale=1, ) - assert params.url == "https://api.helioviewer.org/v2/queueMovie/" + assert params.url == "https://api.beta.helioviewer.org/v2/queueMovie/" diff --git a/hvpy/api_groups/movies/tests/test_re_queue_movie.py b/hvpy/api_groups/movies/tests/test_re_queue_movie.py index b3c7a69..4c5c61c 100644 --- a/hvpy/api_groups/movies/tests/test_re_queue_movie.py +++ b/hvpy/api_groups/movies/tests/test_re_queue_movie.py @@ -25,4 +25,4 @@ def test_error_handling(): def test_url_property(): params = reQueueMovieInputParameters(id="gxRN5") - assert params.url == "https://api.helioviewer.org/v2/reQueueMovie/" + assert params.url == "https://api.beta.helioviewer.org/v2/reQueueMovie/" diff --git a/hvpy/api_groups/official_clients/tests/test_get_closest_image.py b/hvpy/api_groups/official_clients/tests/test_get_closest_image.py index 9772666..5f659e6 100644 --- a/hvpy/api_groups/official_clients/tests/test_get_closest_image.py +++ b/hvpy/api_groups/official_clients/tests/test_get_closest_image.py @@ -1,29 +1,27 @@ -from datetime import datetime - import pytest from hvpy import getClosestImage from hvpy.api_groups.official_clients.get_closest_image import getClosestImageInputParameters -def test_json_res(): - response = getClosestImage(date=datetime(2014, 1, 1, 23, 59, 59), sourceId=14) +def test_json_res(date): + response = getClosestImage(date=date, sourceId=14) assert isinstance(response, dict) -def test_str_res(): - response = getClosestImage(date=datetime(2014, 1, 1, 23, 59, 59), sourceId=14, callback="callback") +def test_str_res(date): + response = getClosestImage(date=date, sourceId=14, callback="callback") assert isinstance(response, str) assert response.startswith("callback") -def test_error_handling(): +def test_error_handling(date): with pytest.raises(TypeError, match="missing 1 required positional argument: 'date'"): getClosestImage(sourceId=14) with pytest.raises(TypeError, match="missing 1 required positional argument: 'sourceId'"): - getClosestImage(date=datetime(2014, 1, 1, 23, 59, 59)) + getClosestImage(date=date) -def test_url_property(): - params = getClosestImageInputParameters(date=datetime(2014, 1, 1, 23, 59, 59), sourceId=14) - assert params.url == "https://api.helioviewer.org/v2/getClosestImage/" +def test_url_property(date): + params = getClosestImageInputParameters(date=date, sourceId=14) + assert params.url == "https://api.beta.helioviewer.org/v2/getClosestImage/" diff --git a/hvpy/api_groups/screenshots/tests/test_download_screenshot.py b/hvpy/api_groups/screenshots/tests/test_download_screenshot.py index f29bf72..489ec63 100644 --- a/hvpy/api_groups/screenshots/tests/test_download_screenshot.py +++ b/hvpy/api_groups/screenshots/tests/test_download_screenshot.py @@ -11,7 +11,7 @@ def test_raw_response(): def test_url_property(): params = downloadScreenshotInputParameters(id=3240748) - assert params.url == "https://api.helioviewer.org/v2/downloadScreenshot/" + assert params.url == "https://api.beta.helioviewer.org/v2/downloadScreenshot/" def test_error_handling(): diff --git a/hvpy/api_groups/screenshots/tests/test_take_screenshot.py b/hvpy/api_groups/screenshots/tests/test_take_screenshot.py index fbf9925..ea1e9cc 100644 --- a/hvpy/api_groups/screenshots/tests/test_take_screenshot.py +++ b/hvpy/api_groups/screenshots/tests/test_take_screenshot.py @@ -1,16 +1,14 @@ -from datetime import datetime - import pytest from hvpy import takeScreenshot from hvpy.api_groups.screenshots.take_screenshot import takeScreenshotInputParameters -def test_json_response(): +def test_json_response(date): response = takeScreenshot( - date=datetime(2014, 1, 1, 23, 59, 59), + date=date, imageScale=2.4204409, - layers="[3,1,100]", + layers="[10,1,100]", width=1920, height=1200, x0=0, @@ -19,12 +17,12 @@ def test_json_response(): assert "id" in response -def test_raw_response(): +def test_raw_response(date): response = takeScreenshot( display=True, - date=datetime(2014, 1, 1, 23, 59, 59), + date=date, imageScale=2.4204409, - layers="[3,1,100]", + layers="[10,1,100]", width=1920, height=1200, x0=0, @@ -33,9 +31,9 @@ def test_raw_response(): assert isinstance(response, bytes) -def test_url_property(): +def test_url_property(date): params = takeScreenshotInputParameters( - date=datetime(2014, 1, 1, 23, 59, 59), + date=date, imageScale=2.4204409, layers="[3,1,100]", width=1920, @@ -43,10 +41,10 @@ def test_url_property(): x0=0, y0=0, ) - assert params.url == "https://api.helioviewer.org/v2/takeScreenshot/" + assert params.url == "https://api.beta.helioviewer.org/v2/takeScreenshot/" -def test_error_handling(): +def test_error_handling(date): with pytest.raises(TypeError, match="missing 1 required positional argument: 'date'"): takeScreenshot( imageScale=2.4204409, @@ -54,11 +52,11 @@ def test_error_handling(): ) with pytest.raises(TypeError, match="missing 1 required positional argument: 'imageScale'"): takeScreenshot( - date=datetime(2014, 1, 1, 23, 59, 59), + date=date, layers="[3,1,100]", ) with pytest.raises(TypeError, match="missing 1 required positional argument: 'layers'"): takeScreenshot( - date=datetime(2014, 1, 1, 23, 59, 59), + date=date, imageScale=2.4204409, ) diff --git a/hvpy/conftest.py b/hvpy/conftest.py index 8070f3f..ad39fcc 100644 --- a/hvpy/conftest.py +++ b/hvpy/conftest.py @@ -1,4 +1,5 @@ import os +from datetime import datetime, timedelta import pytest @@ -21,3 +22,34 @@ def env(): setenv = SetEnv() yield setenv setenv.clear() + + +@pytest.fixture +def date(): + return datetime.today() - timedelta(days=15) + + +@pytest.fixture +def start_time(): + return datetime.today() - timedelta(days=15, minutes=5) + + +@pytest.fixture +def end_time(): + return datetime.today() - timedelta(days=15) + + +@pytest.fixture +def start_times(): + return [ + datetime.today() - timedelta(days=15, minutes=5), + datetime.today() - timedelta(days=16, minutes=5), + ] + + +@pytest.fixture +def end_times(): + return [ + datetime.today() - timedelta(days=15), + datetime.today() - timedelta(days=16), + ] diff --git a/hvpy/facade.py b/hvpy/facade.py index 4dc2b50..5730ef1 100644 --- a/hvpy/facade.py +++ b/hvpy/facade.py @@ -37,8 +37,9 @@ def getJP2Image( Examples -------- >>> from hvpy import getJP2Image - >>> getJP2Image(date=datetime(2019,1,1), sourceId=1, jpip=True) - 'jpip://helioviewer.org:8090/EIT/2013/08/07/195/2013_08_07__01_13_50_146__SOHO_EIT_EIT_195.jp2' + >>> from datetime import datetime, timedelta + >>> getJP2Image(date=datetime.today(), sourceId=14, jpip=True) + 'jpip://...' """ params = getJP2ImageInputParameters(date=date, sourceId=sourceId, jpip=jpip, json=json) return execute_api_call(input_parameters=params) @@ -59,7 +60,7 @@ def getJP2Header( Examples -------- >>> from hvpy import getJP2Header - >>> getJP2Header(id=9838343,callback="xml_header") + >>> getJP2Header(id=7654321,callback="xml_header") 'xml_header(\\\'116...')' """ params = getJP2HeaderInputParameters(id=id, callback=callback) @@ -85,15 +86,15 @@ def getJPXClosestToMidPoint( Examples -------- >>> from hvpy import getJPXClosestToMidPoint - >>> from datetime import datetime + >>> from datetime import datetime, timedelta >>> getJPXClosestToMidPoint( - ... startTimes=[datetime(2014, 1, 1, 0, 0, 0), datetime(2014, 1, 1, 2, 3, 3)], - ... endTimes=[datetime(2014, 1, 1, 0, 45, 0), datetime(2014, 1, 1, 2, 33, 3)], + ... startTimes=[datetime.today() - timedelta(days=15, minutes=5), datetime.today() - timedelta(days=16, minutes=5)], + ... endTimes=[datetime.today() - timedelta(days=15), datetime.today() - timedelta(days=16)], ... sourceId=14, ... linked=False, ... jpip=True ... ) - 'jpip://helioviewer.org:8090/movies/SDO_AIA_335_...jpxmid' + 'jpip://beta.helioviewer.org:8090/movies/SDO_AIA_335_...jpxmid' """ params = getJPXClosestToMidPointInputParameters( startTimes=startTimes, @@ -126,9 +127,15 @@ def getJPX( Examples -------- >>> from hvpy import getJPX - >>> from datetime import datetime - >>> getJPX(startTime=datetime(2014, 1, 1, 0, 0, 0),endTime=datetime(2014, 1, 1, 0, 45, 0),sourceId=14,jpip=True) - 'jpip://helioviewer.org:8090/movies/SDO_AIA_335_F2014-01-01T00.00.00Z_T2014-01-01T00.45.00ZL.jpx' + >>> from datetime import datetime, timedelta + >>> getJPX(startTime=datetime.today() - timedelta(days=15, minutes=5), + ... endTime=datetime.today() - timedelta(days=15), + ... sourceId=14, + ... linked=False, + ... jpip=True, + ... verbose=False, + ... cadence=60) + 'jpip://beta.helioviewer.org:8090/movies/...' """ params = getJPXInputParameters( startTime=startTime, @@ -155,7 +162,7 @@ def getStatus() -> Union[bytes, str, Dict[str, Any]]: -------- >>> from hvpy import getStatus >>> getStatus() - {'AIA': {...}, 'COSMO': {...}, 'EIT': {...}, 'HMI': {...}, 'LASCO': {...}, 'MDI': {...}, 'SECCHI': {...}, 'SWAP': {...}, 'SXT': {...}, 'XRT': {...}} + {'AIA': ..., 'COSMO': ..., 'EUI': ..., 'HMI': ..., 'LASCO': ..., 'SECCHI': ..., 'SWAP': ..., 'XRT': ...} """ params = getStatusInputParameters() return execute_api_call(input_parameters=params) @@ -180,10 +187,10 @@ def getClosestImage( >>> from datetime import datetime >>> from hvpy import getClosestImage >>> getClosestImage( - ... date=datetime(2014,1,1,23,59,59), + ... date=datetime.today(), ... sourceId=14, ... ) - {'id': '32271665', 'date': '2014-01-02 00:00:03', 'name': 'AIA 335', 'scale': 0.5899606831770233, 'width': 4096, 'height': 4096, 'refPixelX': 2048.5, 'refPixelY': 2048.5, 'sunCenterOffsetParams': [], 'layeringOrder': 1} + {'id': '...', 'date': '...', 'name': '...', ...} """ params = getClosestImageInputParameters(date=date, sourceId=sourceId, callback=callback) return execute_api_call(input_parameters=params) @@ -205,7 +212,7 @@ def getDataSources( -------- >>> from hvpy import getDataSources >>> getDataSources() - {'SDO': {'HMI': {'continuum': {'sourceId': 18, 'nickname': 'HMI Int', 'layeringOrder': 1, 'start': ..., 'end': ..., 'uiLabels': [{'label': 'Observatory', 'name': 'SDO'}, {'label': 'Instrument', 'name': 'HMI'}, {'label': 'Measurement', 'name': 'continuum'}]}, ...} + {'GOES-R': {'SUVI': {...: {'sourceId': ..., 'nickname': 'GOES-R SUVI 94', 'layeringOrder': 1, 'start': ..., 'end': ..., 'uiLabels': [{'label': 'Observatory', 'name': 'GOES-R'}, {'label': 'Detector', 'name': 'SUVI'}, ...} """ params = getDataSourcesInputParameters( verbose=verbose, @@ -249,9 +256,9 @@ def takeScreenshot( >>> from hvpy import takeScreenshot >>> from datetime import datetime >>> takeScreenshot( - ... date=datetime(2014, 1, 1, 23, 59, 59), + ... date=datetime.today(), ... imageScale=2.44, - ... layers="[3,1,100]", + ... layers="[10,1,100]", ... x0=0, ... y0=0, ... width=1920, @@ -343,9 +350,10 @@ def queueMovie( Examples -------- >>> from hvpy import queueMovie + >>> from datetime import datetime, timedelta >>> queueMovie( - ... startTime=datetime(2022, 7, 21, 12, 12, 12), - ... endTime=datetime(2022, 7, 22, 12, 12, 12), + ... startTime=datetime.today() - timedelta(days=15, minutes=5), + ... endTime=datetime.today() - timedelta(days=15), ... layers="[12,7,22],[13,7,11]", ... events="[AR,HMI_HARP;SPoCA,1],[CH,all,1]", ... eventsLabels=False, @@ -427,8 +435,8 @@ def getMovieStatus( Examples -------- >>> from hvpy import getMovieStatus - >>> getMovieStatus(id="VXvX5", format="mp4") - {'frameRate': 15, 'numFrames': 300, 'startDate': '2014-02-03 20:26:16', 'status': 2, 'endDate': '2014-02-05 20:16:40', 'width': 846, 'height': 820, 'title': 'SDO AIA 1600 (2014-02-03 20:26:16 - 20:16:40 UTC)', 'thumbnails': {'icon': '...', 'small': '...', 'medium': '...', 'large': '...', 'full': '...'}, 'url': '...', 'statusLabel': 'Completed'} + >>> getMovieStatus(id="h2n6n", format="mp4") + {'frameRate': ..., 'numFrames': ..., 'startDate': '...', 'status': ..., 'endDate': '...', 'width': ..., 'height': ..., 'title': '...', 'thumbnails': {'icon': '...', 'small': '...', 'medium': '...', 'large': '...', 'full': '...'}, 'url': '...', 'statusLabel': 'Completed'} """ params = getMovieStatusInputParameters( id=id, diff --git a/hvpy/tests/test_io.py b/hvpy/tests/test_io.py index af6e2b7..e25f553 100644 --- a/hvpy/tests/test_io.py +++ b/hvpy/tests/test_io.py @@ -9,20 +9,20 @@ def test_default_get_output_type_is_raw(): def test_url_property(): params = HvpyParameters() - assert params.url == "https://api.helioviewer.org/v2//" + assert params.url == "https://api.beta.helioviewer.org/v2//" def test_set_url(): # This is not safe if we ever decide to parallelize the tests. params_first = HvpyParameters() - assert params_first.url == "https://api.helioviewer.org/v2//" + assert params_first.url == "https://api.beta.helioviewer.org/v2//" set_api_url("https://api.beta.helioviewer.org/") params_second = HvpyParameters() assert params_second.url == "https://api.beta.helioviewer.org//" assert params_first.url == params_second.url - set_api_url("https://api.helioviewer.org/v2/") + set_api_url("https://api.beta.helioviewer.org/v2/") def test_set_url_env(env): @@ -41,4 +41,4 @@ def test_set_url_env(env): assert params.url == "https://api.beta.helioviewer.org//" assert LiveSettings.api_url == "https://api.beta.helioviewer.org/" - set_api_url("https://api.helioviewer.org/v2/") + set_api_url("https://api.beta.helioviewer.org/v2/") diff --git a/tox.ini b/tox.ini index 5fefdaa..2f87820 100644 --- a/tox.ini +++ b/tox.ini @@ -12,6 +12,7 @@ isolated_build = true passenv = HOME WINDIR LC_ALL LC_CTYPE CC CI TRAVIS setenv = PYTEST_COMMAND = pytest -vvv -r a --pyargs hvpy --cov-report=xml --cov=hvpy --cov-config={toxinidir}/setup.cfg {toxinidir}/docs + HELIOVIEWER_API_URL = https://api.beta.helioviewer.org/v2/ # Run the tests in a temporary directory to make sure that we don't import # the package from the source tree changedir = .tmp/{envname}