def test_get_image_list(): def get(*args, **kwargs): class CapsResponse(object): def __init__(self): self.status_code = 200 self.content = b'' def raise_for_status(self): pass return CapsResponse() class Params(object): def __init__(self, **param_dict): self.__dict__.update(param_dict) coords = '08h45m07.5s +54d18m00s' coords_ra = parse_coordinates(coords).fk5.ra.degree coords_dec = parse_coordinates(coords).fk5.dec.degree radius = 0.1*u.deg uri = 'im_an_ID' run_id = 'im_a_RUNID' pos = 'CIRCLE {} {} {}'.format(coords_ra, coords_dec, radius.value) service_def1 = Mock() service_def1.access_url = \ b'https://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/caom2ops/sync' service_def1.input_params = [Params(name='ID', value=uri), Params(name='RUNID', value=run_id)] service_def2 = Mock() service_def2.access_url = \ b'https://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/caom2ops/async' service_def2.input_params = [Params(name='ID', value=uri), Params(name='RUNID', value=run_id)] result = Mock() service_def_list = [service_def1, service_def2] result.bysemantics.return_value = service_def_list with patch('pyvo.dal.adhoc.DatalinkResults.from_result_url') as dl_results_mock: dl_results_mock.return_value = result cadc = Cadc() cadc._request = get # Mock the request url_list = cadc.get_image_list( {'publisherID': ['ivo://cadc.nrc.ca/foo']}, coords, radius) assert len(url_list) == 1 params = parse_qs(urlsplit(url_list[0]).query) assert params['ID'][0] == uri assert params['RUNID'][0] == run_id assert params['POS'][0] == pos with pytest.raises(TypeError): cadc.get_image_list(None) with pytest.raises(AttributeError): cadc.get_image_list(None, coords, radius) with pytest.raises(TypeError): cadc.get_image_list({'publisherID': [ 'ivo://cadc.nrc.ca/foo']}, coords, 0.1)
help="DEC of the source in +00d00m00.00s format", type=str) parser.add_argument("radius", help="radius around ra dec center", type=str, default="3 arcmin") args = parser.parse_args() ra = args.ra dec = args.dec radius = args.radius cadc = Cadc() coords = ra + " " + dec results = cadc.query_region(coords, radius, collection='VLASS') image_list = cadc.get_image_list(results, coords, radius) if (len(image_list) > 1): print("The coordinates entered are present in more than one field!") for i in range(len(image_list)): print(i, " : ", image_list[i]) field_id = input("Enter field you would like to download : ") field_id = int(field_id) sel_image = image_list[field_id] filename = sel_image.split("/")[-1].split("&")[0][21:] print(filename) print("Downloading VLASS image : ", filename) urlretrieve(sel_image, filename) else: sel_image = image_list[0] filename = sel_image.split("/")[-1].split("&")[0][21:]