Exemplo n.º 1
0
def query_decode(json_object):
    simple_attrs = [
        'Provider', 'Source', 'Instrument', 'Physobs', 'Pixels', 'Level',
        'Resolution', 'Detector', 'Filter', 'Sample', 'Quicklook', 'PScale']
    for key in simple_attrs:
        if key in json_object:
            Attr = getattr(vso.attrs, key)
            return Attr(json_object[key])
    if 'Wavelength' in json_object:
        Attr = getattr(vso.attrs, 'Wavelength')
        wavemin, wavemax, unit = json_object['Wavelength']
        return Attr(wavemin * u.Unit(unit), wavemax * u.Unit(unit))
    if 'Time' in json_object:
        Attr = getattr(vso.attrs, 'Time')
        return Attr(*json_object['Time'])
    for key in ['Tag', 'Path', 'DownloadTime', 'FitsHeaderEntry']:
        if key in json_object:
            Attr = getattr(db_attrs, key)
            values, inverted = json_object[key][:-1], json_object[key][-1]
            if inverted:
                return ~Attr(*values)
            return Attr(*values)
    if 'Starred' in json_object:
        if json_object['Starred']:
            return ~db_attrs.Starred()
        return db_attrs.Starred()
    for key in ['AttrOr', 'AttrAnd']:
        if key in json_object:
            Attr = getattr(vso.attrs, key)
            return Attr(json_object[key])
    return json_object
Exemplo n.º 2
0
def test_query_unexpected_kwarg(database):
    with pytest.raises(TypeError):
        database.query(attrs.Starred(), foo=42)
Exemplo n.º 3
0
def test_starred_inverted():
    expected = '{"Starred": false}'
    assert json.dumps(~db_attrs.Starred(), cls=QueryEncoder) == expected
Exemplo n.º 4
0
def test_starred():
    expected = '{"Starred": true}'
    assert json.dumps(db_attrs.Starred(), cls=QueryEncoder) == expected
Exemplo n.º 5
0
def test_decode_starred_inverted():
    dump = '{"Starred": true}'
    assert json.loads(dump, object_hook=query_decode) == ~db_attrs.Starred()
Exemplo n.º 6
0
def test_decode_starred():
    dump = '{"Starred": false}'
    assert json.loads(dump, object_hook=query_decode) == db_attrs.Starred()