def test_sia(): sia_mock = Mock() empty_result = Table.read(os.path.join(DATA_DIR, 'alma-empty.txt'), format='ascii') sia_mock.search.return_value = Mock(table=empty_result) alma = Alma() alma._get_dataarchive_url = Mock() alma._sia = sia_mock result = alma.query_sia(pos='CIRCLE 1 2 1', calib_level=[0, 1], data_rights='Public', band=(300, 400), time=545454, maxrec=10, pol=['XX', 'YY'], instrument='JAO', collection='ALMA', field_of_view=0.0123130, data_type='cube', target_name='J0423-013', publisher_did='ADS/JAO.ALMA#2013.1.00546.S', exptime=25) assert len(result.table) == 0 assert_called_with(sia_mock.search, calib_level=[0, 1], band=(300, 400), data_type='cube', pos='CIRCLE 1 2 1', time=545454, maxrec=10, pol=['XX', 'YY'], instrument='JAO', collection='ALMA', data_rights='Public', field_of_view=0.0123130, target_name='J0423-013', publisher_did='ADS/JAO.ALMA#2013.1.00546.S', exptime=25)
def test_tap(): tap_mock = Mock() empty_result = Table.read(os.path.join(DATA_DIR, 'alma-empty.txt'), format='ascii') tap_mock.search.return_value = Mock(table=empty_result) alma = Alma() alma._get_dataarchive_url = Mock() alma._tap = tap_mock result = alma.query_tap('select * from ivoa.ObsCore') assert len(result.table) == 0 tap_mock.search.assert_called_once_with('select * from ivoa.ObsCore', language='ADQL')
def test_get_data_info(): datalink_mock = Mock() dl_result = Table.read(data_path('alma-datalink.xml'), format='votable') mock_response = Mock(to_table=Mock(return_value=dl_result)) mock_response.status = ['OK'] datalink_mock.run_sync.return_value = mock_response alma = Alma() alma._get_dataarchive_url = Mock() alma._datalink = datalink_mock result = alma.get_data_info(uids='uid://A001/X12a3/Xe9') assert len(result) == 7 datalink_mock.run_sync.assert_called_once_with('uid://A001/X12a3/Xe9')
def test_galactic_query(): """ regression test for 1867 """ tap_mock = Mock() empty_result = Table.read(os.path.join(DATA_DIR, 'alma-empty.txt'), format='ascii') mock_result = Mock() mock_result.to_table.return_value = empty_result tap_mock.search.return_value = mock_result alma = Alma() alma._get_dataarchive_url = Mock() alma._tap = tap_mock result = alma.query_region(SkyCoord(0*u.deg, 0*u.deg, frame='galactic'), radius=1*u.deg, get_query_payload=True) assert result['ra_dec'] == SkyCoord(0*u.deg, 0*u.deg, frame='galactic').icrs.to_string() + ", 1.0"
def test_query(): # Tests the query and return values tap_mock = Mock() empty_result = Table.read(os.path.join(DATA_DIR, 'alma-empty.txt'), format='ascii') mock_result = Mock() mock_result.to_table.return_value = empty_result tap_mock.search.return_value = mock_result alma = Alma() alma._get_dataarchive_url = Mock() alma._tap = tap_mock result = alma.query_region(SkyCoord(1 * u.deg, 2 * u.deg, frame='icrs'), radius=1 * u.deg) assert len(result) == 0 assert 'proposal_id' in result.columns tap_mock.search.assert_called_once_with( "select * from ivoa.obscore WHERE " "(INTERSECTS(CIRCLE('ICRS',1.0,2.0,1.0), s_region) = 1) " "AND calib_level>1 AND data_rights='Public'", language='ADQL') # one row result tap_mock = Mock() onerow_result = Table.read(os.path.join(DATA_DIR, 'alma-onerow.txt'), format='ascii') mock_result = Mock() mock_result.to_table.return_value = onerow_result tap_mock.search.return_value = mock_result alma = Alma() alma._tap = tap_mock with patch('astroquery.alma.tapsql.coord.SkyCoord.from_name') as name_mock: name_mock.return_value = SkyCoord(1, 2, unit='deg') result = alma.query_object('M83', public=False, band_list=[3]) assert len(result) == 1 tap_mock.search.assert_called_once_with( "select * from ivoa.obscore WHERE " "(INTERSECTS(CIRCLE('ICRS',1.0,2.0,0.16666666666666666), s_region) = 1) " "AND band_list LIKE '%3%' AND calib_level>1 AND data_rights='Proprietary'", band_list=[3], language='ADQL') # repeat for legacy columns mock_result = Mock() tap_mock = Mock() mock_result.to_table.return_value = onerow_result tap_mock.search.return_value = mock_result alma = Alma() alma._tap = tap_mock with patch('astroquery.alma.tapsql.coord.SkyCoord.from_name') as name_mock: name_mock.return_value = SkyCoord(1, 2, unit='deg') result_legacy = alma.query_object('M83', public=False, legacy_columns=True, band_list=[3]) assert len(result) == 1 assert 'Project code' in result_legacy.columns tap_mock.search.assert_called_once_with( "select * from ivoa.obscore WHERE " "(INTERSECTS(CIRCLE('ICRS',1.0,2.0,0.16666666666666666), s_region) = 1) " "AND band_list LIKE '%3%' AND calib_level>1 AND data_rights='Proprietary'", band_list=[3], language='ADQL') row_legacy = result_legacy[0] row = result[0] for item in _OBSCORE_TO_ALMARESULT.items(): if item[0] == 't_min': assert Time(row[item[0]], format='mjd').strftime('%d-%m-%Y') ==\ row_legacy[item[1]] else: assert row[item[0]] == row_legacy[item[1]] # query with different arguments tap_mock = Mock() empty_result = Table.read(os.path.join(DATA_DIR, 'alma-empty.txt'), format='ascii') mock_result = Mock() mock_result.to_table.return_value = empty_result tap_mock.search.return_value = mock_result alma = Alma() alma._get_dataarchive_url = Mock() alma._tap = tap_mock result = alma.query_region('1 2', radius=1 * u.deg, payload={'frequency': '22'}, public=None, band_list='1 3', science=False, start_date='01-01-2010', polarisation_type='Dual', fov=0.0123130, integration_time=25) assert len(result) == 0 tap_mock.search.assert_called_with( "select * from ivoa.obscore WHERE frequency=22.0 AND " "(INTERSECTS(CIRCLE('ICRS',1.0,2.0,1.0), s_region) = 1) AND " "(band_list LIKE '%1%' OR band_list LIKE '%3%') AND " "t_min=55197.0 AND pol_states='/XX/YY/' AND s_fov=0.012313 AND " "t_exptime=25", band_list='1 3', fov=0.012313, integration_time=25, language='ADQL', polarisation_type='Dual', start_date='01-01-2010')