def qr_block_with_missing_physobs(): return vso.VSOClient().search( net_attrs.Time('20130805T120000', '20130805T121000'), net_attrs.Instrument('SWAVES'), net_attrs.Source('STEREO_A'), net_attrs.Provider('SSC'), net_attrs.Wavelength( 10 * u.kHz, 160 * u.kHz), response_format="legacy")[0]
def test_old_data_access(timerange, url_old, url_new): # test first for old data qr = Fido.search(timerange, a.Instrument("XRS"), a.Provider("SDAC")) urls = qr[0]['url'] assert urls[0] == url_old # now test for new data qr = Fido.search(timerange, a.Instrument("XRS")) urls = qr[0]['url'] assert urls[0] == url_new
def test_split_database(split_function_database, database): # Send all entries with instrument='EIA' to destination_database split_function_database, database = split_database( split_function_database, database, net_attrs.Instrument('EIA')) observed_source_entries = split_function_database.search( net_attrs.Provider('xyz'), sortby='id') observed_destination_entries = database.search(net_attrs.Provider('xyz')) assert observed_source_entries == [ DatabaseEntry(id=1, instrument='RHESSI', provider='xyz'), DatabaseEntry(id=2, instrument='RHESSI', provider='xyz'), DatabaseEntry(id=3, instrument='RHESSI', provider='xyz'), DatabaseEntry(id=5, instrument='AIA_3', provider='xyz'), DatabaseEntry(id=6, instrument='RHESSI', provider='xyz'), DatabaseEntry(id=7, instrument='RHESSI', provider='xyz'), DatabaseEntry(id=9, instrument='RHESSI', provider='xyz'), DatabaseEntry(id=10, instrument='AIA_3', provider='xyz'), ] assert observed_destination_entries == [ DatabaseEntry(id=4, instrument='EIA', provider='xyz'), DatabaseEntry(id=8, instrument='EIA', provider='xyz'), ]
def vso_search(trange=None, instrument=None, wavelength=None, sample=None, provider=None, source=None): try: from sunpy.net import Fido, attrs as a except: print('VSO_SEARCH: Error, requires sunpy. Sunpy not installed?') return None import astropy.units as u if not trange or not instrument: print( 'VSO_SEARCH: Error, must specify a valid time range and instrument' ) return None try: times = a.Time(Time(trange[0]).iso, Time(trange[1]).iso) except: print('VSO_SEARCH: Error, invalid time range') return None inst = a.Instrument(instrument) paras = [times, inst] if wavelength: wave = a.Wavelength(wavelength * u.angstrom) paras = paras + [wave] if sample is not None: sample = a.Sample(sample * u.second) # in units of seconds paras = paras + [sample] if provider is not None: provider = a.Provider(provider) paras = paras + [provider] if source is not None: source = a.Source(source) paras = paras + [source] qr = Fido.search(*paras) return qr
'2011/1/1 01:02'), core_attrs.Instrument('mdi'), response_format="table") files = client.fetch(results[0:1]) assert len(files) == 1 assert files[0].endswith("mdi_vw_v_9466622_9466622.tar") assert "Content" not in files[0] @pytest.mark.parametrize("query, handle", [ ((a.Time("2011/01/01", "2011/01/02"), ), True), ((a.Physobs.los_magnetic_field, ), False), (( a.Time("2011/01/01", "2011/01/02"), a.Provider("SDAC"), ), True), (( a.jsoc.Series("wibble"), a.Physobs.los_magnetic_field, ), False), ]) def test_can_handle_query(query, handle): assert VSOClient._can_handle_query(*query) is handle @pytest.mark.remote_data def test_vso_attrs(client): """ Check that the dict is correctly filled. """
def qr_with_none_waves(): return vso.VSOClient().search(net_attrs.Time('20121224T120049.8', '20121224T120049.8'), net_attrs.Provider('SDAC'), net_attrs.Instrument('VIRGO'), response_format="legacy")
@pytest.mark.remote_data def test_incorrect_content_disposition(client): results = client.search( core_attrs.Time('2011/1/1 01:00', '2011/1/1 01:02'), core_attrs.Instrument('mdi')) files = client.fetch(results[0:1]) assert len(files) == 1 assert files[0].endswith("mdi_vw_v_9466622_9466622.tar") assert "Content" not in files[0] @pytest.mark.parametrize("query, handle", [ ((a.Time("2011/01/01", "2011/01/02"),), True), ((a.Physobs.los_magnetic_field,), False), ((a.Time("2011/01/01", "2011/01/02"), a.Provider("SDAC"),), True), ((a.jsoc.Series("wibble"), a.Physobs.los_magnetic_field,), False), ]) def test_can_handle_query(query, handle): assert VSOClient._can_handle_query(*query) is handle @pytest.mark.remote_data def test_vso_attrs(client): """ Check that the dict is correctly filled. """ adict = client.load_vso_values() assert isinstance(adict, dict) assert len(adict.keys()) == 6 for key, value in adict.items():