def test_misc(): cadc = Cadc() coords = '08h45m07.5s +54d18m00s' coords_ra = parse_coordinates(coords).fk5.ra.degree coords_dec = parse_coordinates(coords).fk5.dec.degree assert "SELECT * from caom2.Observation o join caom2.Plane p ON " \ "o.obsID=p.obsID WHERE INTERSECTS( CIRCLE('ICRS', " \ "{}, {}, 0.3), position_bounds) = 1 " \ "AND (quality_flag IS NULL OR quality_flag != 'junk') " \ "AND collection='CFHT' AND dataProductType='image'".\ format(coords_ra, coords_dec) == \ cadc._args_to_payload(**{'coordinates': coords, 'radius': 0.3 * u.deg, 'collection': 'CFHT', 'data_product_type': 'image'})['query'] # no collection or data_product_type assert "SELECT * from caom2.Observation o join caom2.Plane p ON " \ "o.obsID=p.obsID WHERE INTERSECTS( CIRCLE('ICRS', " \ "{}, {}, 0.3), position_bounds) = 1 AND (quality_flag IS NULL OR " \ "quality_flag != 'junk')".format(coords_ra, coords_dec) == \ cadc._args_to_payload(**{'coordinates': coords, 'radius': '0.3 deg'})['query']
def test_misc(monkeypatch): dummyTapHandler = DummyTapHandler() monkeypatch.setattr(cadc_core, 'get_access_url', get_access_url_mock) cadc = Cadc(tap_plus_handler=dummyTapHandler) class Result(object): pass result = Result() result._phase = 'RUN' with pytest.raises(RuntimeError): cadc._parse_result(result) result._phase = 'COMPLETED' result.results = 'WELL DONE' assert result.results == cadc._parse_result(result) coords = '08h45m07.5s +54d18m00s' coords_ra = parse_coordinates(coords).ra.degree coords_dec = parse_coordinates(coords).dec.degree assert "SELECT * from caom2.Observation o join caom2.Plane p ON " \ "o.obsID=p.obsID WHERE INTERSECTS( CIRCLE('ICRS', " \ "{}, {}, 0.3), position_bounds) = 1 " \ "AND (quality_flag IS NULL OR quality_flag != 'junk') " \ "AND collection='CFHT'".format(coords_ra, coords_dec) == \ cadc._args_to_payload(**{'coordinates': coords, 'radius': 0.3, 'collection': 'CFHT'})['query'] # no collection assert "SELECT * from caom2.Observation o join caom2.Plane p ON " \ "o.obsID=p.obsID WHERE INTERSECTS( CIRCLE('ICRS', " \ "{}, {}, 0.3), position_bounds) = 1 AND (quality_flag IS NULL OR " \ "quality_flag != 'junk')".format(coords_ra, coords_dec) == \ cadc._args_to_payload(**{'coordinates': coords, 'radius': 0.3})['query']
def test_get_images_against_AS(self): cadc = Cadc() coords = '08h45m07.5s +54d18m00s' radius = 0.05 * u.deg # Compare results from cadc advanced search to get_images query = cadc._args_to_payload(**{ 'coordinates': coords, 'radius': radius, 'data_product_type': 'image' })['query'] result = cadc.exec_sync(query) uri_list = [uri.decode('ascii') for uri in result['publisherID']] access_url = 'https://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/en/download' icrs_coords = parse_coordinates(coords).icrs data = { 'uris': ' '.join(uri_list), 'params': 'cutout=Circle ICRS {} {} {}'.format(icrs_coords.ra.degree, icrs_coords.dec.degree, radius.value), 'method': 'URL List' } resp_urls = requests.post(access_url, data).text.split('\r\n') # Filter out the errors and empty strings filtered_resp_urls = list( filter(lambda url: not url.startswith('ERROR') and url != '', resp_urls)) # This function should return nearly the same urls image_urls = cadc.get_images(coords, radius, get_url_list=True) assert len(filtered_resp_urls) == len(image_urls)