Exemplo n.º 1
0
def test_args_to_payload_channel(patch_get):
    casda = Casda()
    fake_login(casda, USERNAME, PASSWORD)

    payload = casda._args_to_payload(channel=(0, 30))
    assert payload['CHANNEL'] == '0 30'
    assert list(payload.keys()) == ['CHANNEL']

    payload = casda._args_to_payload(channel=np.array([17, 23]))
    assert payload['CHANNEL'] == '17 23'
    assert list(payload.keys()) == ['CHANNEL']

    payload = casda._args_to_payload(channel=(23, 17))
    assert payload['CHANNEL'] == '17 23'
    assert list(payload.keys()) == ['CHANNEL']
Exemplo n.º 2
0
def test_args_to_payload_coordinates(patch_get):
    casda = Casda()
    fake_login(casda, USERNAME, PASSWORD)

    cutout_coords = SkyCoord(ra=345.245 * u.degree,
                             dec=-32.125 * u.degree,
                             frame='icrs')
    payload = casda._args_to_payload(coordinates=cutout_coords)
    assert payload['POS'].startswith('CIRCLE 345')
    pos_parts = payload['POS'].split(' ')
    assert pos_parts[0] == 'CIRCLE'
    assert isclose(float(pos_parts[1]), 345.245, abs_tol=1e-4)
    assert isclose(float(pos_parts[2]), -32.125, abs_tol=1e-4)
    assert isclose(float(pos_parts[3]), 1 / 60)
    assert len(pos_parts) == 4
    assert list(payload.keys()) == ['POS']

    cutout_coords = SkyCoord(ra=187.5 * u.degree,
                             dec=-60.0 * u.degree,
                             frame='icrs')
    payload = casda._args_to_payload(coordinates=cutout_coords,
                                     radius=900 * u.arcsec)
    assert payload['POS'].startswith('CIRCLE 187')
    pos_parts = payload['POS'].split(' ')
    assert pos_parts[0] == 'CIRCLE'
    assert isclose(float(pos_parts[1]), 187.5, abs_tol=1e-4)
    assert isclose(float(pos_parts[2]), -60.0, abs_tol=1e-4)
    assert isclose(float(pos_parts[3]), 0.25)
    assert len(pos_parts) == 4
    assert list(payload.keys()) == ['POS']

    cutout_coords = SkyCoord(ra=187.5 * u.degree,
                             dec=-60.0 * u.degree,
                             frame='icrs')
    payload = casda._args_to_payload(coordinates=cutout_coords,
                                     width=2 * u.arcmin,
                                     height=3 * u.arcmin)
    assert payload['POS'].startswith('RANGE 187')
    pos_parts = payload['POS'].split(' ')
    assert pos_parts[0] == 'RANGE'
    assert isclose(float(pos_parts[1]), 187.5 - 1 / 60, abs_tol=1e-4)
    assert isclose(float(pos_parts[2]), 187.5 + 1 / 60, abs_tol=1e-4)
    assert isclose(float(pos_parts[3]), -60.0 - 1.5 / 60, abs_tol=1e-4)
    assert isclose(float(pos_parts[4]), -60.0 + 1.5 / 60, abs_tol=1e-4)
    assert len(pos_parts) == 5
    assert list(payload.keys()) == ['POS']
Exemplo n.º 3
0
def test_args_to_payload_band(patch_get):
    casda = Casda()
    fake_login(casda, USERNAME, PASSWORD)

    payload = casda._args_to_payload(band=(0.195 * u.m, 0.215 * u.m))
    assert payload['BAND'] == '0.195 0.215'
    assert list(payload.keys()) == ['BAND']

    payload = casda._args_to_payload(band=(0.215 * u.m, 0.195 * u.m))
    assert payload['BAND'] == '0.195 0.215'
    assert list(payload.keys()) == ['BAND']

    payload = casda._args_to_payload(band=(0.195 * u.m, 21.5 * u.cm))
    assert payload['BAND'] == '0.195 0.215'
    assert list(payload.keys()) == ['BAND']

    payload = casda._args_to_payload(band=(None, 0.215 * u.m))
    assert payload['BAND'] == '-Inf 0.215'
    assert list(payload.keys()) == ['BAND']

    payload = casda._args_to_payload(band=(0.195 * u.m, None))
    assert payload['BAND'] == '0.195 +Inf'
    assert list(payload.keys()) == ['BAND']

    payload = casda._args_to_payload(band=(1.42 * u.GHz, 1.5 * u.GHz))
    assert payload['BAND'] == '0.19986163866666667 0.21112144929577467'
    assert list(payload.keys()) == ['BAND']

    payload = casda._args_to_payload(band=np.array([1.5, 1.42]) * u.GHz)
    assert payload['BAND'] == '0.19986163866666667 0.21112144929577467'
    assert list(payload.keys()) == ['BAND']

    payload = casda._args_to_payload(band=(None, 1.5 * u.GHz))
    assert payload['BAND'] == '0.19986163866666667 +Inf'
    assert list(payload.keys()) == ['BAND']

    payload = casda._args_to_payload(band=(1.42 * u.GHz, None))
    assert payload['BAND'] == '-Inf 0.21112144929577467'
    assert list(payload.keys()) == ['BAND']
Exemplo n.º 4
0
def test_args_to_payload_combined(patch_get):
    casda = Casda()
    fake_login(casda, USERNAME, PASSWORD)
    cutout_coords = SkyCoord(ra=187.5 * u.degree,
                             dec=-60.0 * u.degree,
                             frame='icrs')
    payload = casda._args_to_payload(coordinates=cutout_coords,
                                     channel=(17, 23))
    assert payload['POS'].startswith('CIRCLE 187')
    pos_parts = payload['POS'].split(' ')
    assert pos_parts[0] == 'CIRCLE'
    assert isclose(float(pos_parts[1]), 187.5, abs_tol=1e-4)
    assert isclose(float(pos_parts[2]), -60.0, abs_tol=1e-4)
    assert isclose(float(pos_parts[3]), 1 / 60)
    assert len(pos_parts) == 4
    assert payload['CHANNEL'] == '17 23'
    assert set(payload.keys()) == set(['CHANNEL', 'POS'])
Exemplo n.º 5
0
def test_args_to_payload_channel_invalid(patch_get):
    casda = Casda()
    fake_login(casda, USERNAME, PASSWORD)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(channel='one')
    assert "The 'channel' value must be a list of 2 integer values." in str(
        excinfo.value)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(channel=(1.42 * u.GHz, 1.5 * u.GHz))
    assert "The 'channel' value must be a list of 2 integer values." in str(
        excinfo.value)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(channel=(None, 5))
    assert "The 'channel' value must be a list of 2 integer values." in str(
        excinfo.value)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(channel=(5))
    assert "The 'channel' value must be a list of 2 integer values." in str(
        excinfo.value)
Exemplo n.º 6
0
def test_args_to_payload_band_invalid(patch_get):
    casda = Casda()
    fake_login(casda, USERNAME, PASSWORD)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(band='foo')
    assert "The 'band' value must be a list of 2 wavelength or frequency values." in str(
        excinfo.value)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(band=(0.195 * u.m, 0.215 * u.m, 0.3 * u.m))
    assert "The 'band' value must be a list of 2 wavelength or frequency values." in str(
        excinfo.value)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(band=('a', 0.215 * u.m))
    assert "The 'band' value must be a list of 2 wavelength or frequency values." in str(
        excinfo.value)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(band=(1.42 * u.GHz, 21 * u.cm))
    assert "The 'band' values must have the same kind of units." in str(
        excinfo.value)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(band=[1.42 * u.radian, 21 * u.deg])
    assert "The 'band' values must be wavelengths or frequencies." in str(
        excinfo.value)

    with pytest.raises(ValueError) as excinfo:
        casda._args_to_payload(band=(1.42 * u.GHz, 1.5 * u.GHz),
                               channel=(5, 10))
    assert "Either 'channel' or 'band' values may be provided but not both." in str(
        excinfo.value)