Skip to content

Commit db2c332

Browse files
committed
Fix regression found in remote tests. Modified doctest RST to force more reliable host.
1 parent 7ede880 commit db2c332

File tree

3 files changed

+42
-15
lines changed

3 files changed

+42
-15
lines changed

astroquery/alma/core.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,13 +156,13 @@
156156

157157

158158
# used to lookup the TAP service on an ARC
159-
TAP_SERVICE_PATH = '/tap'
159+
TAP_SERVICE_PATH = 'tap'
160160

161161
# used to lookup the DataLink service on an ARC
162-
DATALINK_SERVICE_PATH = '/datalink'
162+
DATALINK_SERVICE_PATH = 'datalink/sync'
163163

164164
# used to lookup the SIA service on an ARC
165-
SIA_SERVICE_PATH = '/sia2'
165+
SIA_SERVICE_PATH = 'sia2'
166166

167167

168168
def _gen_sql(payload):
@@ -230,7 +230,12 @@ def datalink(self):
230230
def datalink_url(self):
231231
if not self._datalink_url:
232232
try:
233-
self._datalink_url = f"{self._get_dataarchive_url()}{DATALINK_SERVICE_PATH}"
233+
base_url = self._get_dataarchive_url()
234+
235+
if base_url.endswith('/'):
236+
self._datalink_url = f'{base_url}{DATALINK_SERVICE_PATH}'
237+
else:
238+
self._datalink_url = f'{base_url}/{DATALINK_SERVICE_PATH}'
234239
except requests.exceptions.HTTPError as err:
235240
log.debug(
236241
f"ERROR getting the ALMA Archive URL: {str(err)}")
@@ -247,7 +252,12 @@ def sia(self):
247252
def sia_url(self):
248253
if not self._sia_url:
249254
try:
250-
self._sia_url = f"{self._get_dataarchive_url()}{SIA_SERVICE_PATH}"
255+
base_url = self._get_dataarchive_url()
256+
257+
if base_url.endswith('/'):
258+
self._sia_url = f'{base_url}{SIA_SERVICE_PATH}'
259+
else:
260+
self._sia_url = f'{base_url}/{SIA_SERVICE_PATH}'
251261
except requests.exceptions.HTTPError as err:
252262
log.debug(
253263
f"ERROR getting the ALMA Archive URL: {str(err)}")
@@ -264,7 +274,12 @@ def tap(self):
264274
def tap_url(self):
265275
if not self._tap_url:
266276
try:
267-
self._tap_url = f"{self._get_dataarchive_url()}{TAP_SERVICE_PATH}"
277+
base_url = self._get_dataarchive_url()
278+
279+
if base_url.endswith('/'):
280+
self._tap_url = f'{base_url}{TAP_SERVICE_PATH}'
281+
else:
282+
self._tap_url = f'{base_url}/{TAP_SERVICE_PATH}'
268283
except requests.exceptions.HTTPError as err:
269284
log.debug(
270285
f"ERROR getting the ALMA Archive URL: {str(err)}")

astroquery/alma/tests/test_alma.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ def _test_datalink_url(data_archive_url):
453453
alma = Alma()
454454
alma._get_dataarchive_url = Mock(return_value=data_archive_url)
455455
alma._get_dataarchive_url.reset_mock()
456-
assert alma.datalink_url == f"{data_archive_url}/datalink"
456+
assert alma.datalink_url == f"{data_archive_url}/datalink/sync"
457457

458458

459459
def test_get_data_info():

docs/alma/alma.rst

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,9 @@ You can query by object name or by circular region:
127127
.. doctest-remote-data::
128128
129129
>>> from astroquery.alma import Alma
130-
>>> m83_data = Alma.query_object('M83')
130+
>>> alma = Alma()
131+
>>> alma.archive_url = 'https://almascience.eso.org' # optional to make doctest work
132+
>>> m83_data = alma.query_object('M83')
131133
>>> m83_data.colnames # doctest: +IGNORE_OUTPUT
132134
['obs_publisher_did', 'obs_collection', 'facility_name', 'instrument_name',
133135
'obs_id', 'dataproduct_type', 'calib_level', 'target_name', 's_ra',
@@ -155,7 +157,9 @@ Region queries are just like any other in astroquery:
155157
>>> from astropy import units as u
156158
>>> galactic_center = coordinates.SkyCoord(0*u.deg, 0*u.deg,
157159
... frame='galactic')
158-
>>> gc_data = Alma.query_region(galactic_center, 1*u.deg)
160+
>>> alma = Alma()
161+
>>> alma.archive_url = 'https://almascience.eso.org' # optional to make doctest work
162+
>>> gc_data = alma.query_region(galactic_center, 1*u.deg)
159163
>>> print(gc_data) # doctest: +IGNORE_OUTPUT
160164
obs_publisher_did obs_collection facility_name ... scientific_category lastModified
161165
...
@@ -306,7 +310,9 @@ are >100 GB!
306310
307311
>>> import numpy as np
308312
>>> from astroquery.alma import Alma
309-
>>> m83_data = Alma.query_object('M83')
313+
>>> alma = Alma()
314+
>>> alma.archive_url = 'https://almascience.eso.org' # optional to make doctest work
315+
>>> m83_data = alma.query_object('M83')
310316
>>> uids = np.unique(m83_data['member_ous_uid'])
311317
>>> print(uids)
312318
member_ous_uid
@@ -320,7 +326,9 @@ data such as the file names, their urls, sizes etc.
320326
321327
.. doctest-remote-data::
322328
323-
>>> link_list = Alma.get_data_info(uids[:3])
329+
>>> alma = Alma()
330+
>>> alma.archive_url = 'https://almascience.eso.org' # optional to make doctest work
331+
>>> link_list = alma.get_data_info(uids[:3])
324332
325333
By default, ALMA data is delivered as tarball files. However, the content of
326334
some of these files can be listed and accessed individually. To get information
@@ -329,7 +337,9 @@ on the individual files:
329337
330338
.. doctest-remote-data::
331339
332-
>>> link_list = Alma.get_data_info(uids[:3], expand_tarfiles=True)
340+
>>> alma = Alma()
341+
>>> alma.archive_url = 'https://almascience.eso.org' # optional to make doctest work
342+
>>> link_list = alma.get_data_info(uids[:3], expand_tarfiles=True)
333343
334344
You can then go on to download those files. The download will be cached so
335345
that repeat queries of the same file will not re-download the data. The
@@ -374,11 +384,13 @@ files:
374384
>>> from astropy import units as u
375385
>>> s255ir = coordinates.SkyCoord(93.26708333, 17.97888889, frame='fk5',
376386
... unit=(u.deg, u.deg))
377-
>>> result = Alma.query_region(s255ir, radius=0.034*u.deg)
378-
>>> uid_url_table = Alma.get_data_info(result['obs_id'][0], expand_tarfiles=True)
387+
>>> alma = Alma()
388+
>>> alma.archive_url = 'https://almascience.eso.org' # optional to make doctest work
389+
>>> result = alma.query_region(s255ir, radius=0.034*u.deg)
390+
>>> uid_url_table = alma.get_data_info(result['obs_id'][0], expand_tarfiles=True)
379391
>>> # downselect to just the FITSf files
380392
>>> fits_urls = [url for url in uid_url_table['access_url'] if '.fits' in url]
381-
>>> filelist = Alma.download_files(fits_urls[:5]) # doctest: +SKIP
393+
>>> filelist = alma.download_files(fits_urls[:5]) # doctest: +SKIP
382394
383395
You might want to look at the READMEs from a bunch of files so you know what
384396
kind of S/N to expect:

0 commit comments

Comments
 (0)