def test_walker_create_fitsheader(session): tag = tables.Tag('foo') tag.id = 1 entries = walker.create(FitsHeaderEntry('INSTRUME', 'EIT'), session) fits_header_entry = tables.FitsHeaderEntry('INSTRUME', 'EIT') fits_header_entry.id = 1 assert len(entries) == 1 assert entries == [ tables.DatabaseEntry(id=10, starred=True, tags=[tag], download_time=datetime(2005, 6, 15, 10), fits_header_entries=[fits_header_entry]) ]
def test_walker_create_time(vso_session): time = vso.attrs.Time(datetime(2011, 9, 17, 0, 0, 0), datetime(2011, 9, 20, 0, 0, 0)) entries = walker.create(time, vso_session) assert len(entries) == 1 assert entries == [ tables.DatabaseEntry( id=2, source=u'RHESSI', provider=u'LSSP', physobs=u'intensity', fileid=u'/hessidata/2011/09/19/hsi_20110919_233340', observation_time_start=datetime(2011, 9, 19, 23, 33, 40), observation_time_end=datetime(2011, 9, 20, 1, 9, 20), instrument=u'RHESSI', wavemin=0.4132806579880238, wavemax=7.293188082141598e-05) ]
def test_walker_create_tag_negative(session): entries = walker.create(~Tag('foo'), session) assert len(entries) == 8 assert entries == [ tables.DatabaseEntry(id=1, download_time=datetime(2005, 6, 15, 1)), tables.DatabaseEntry( id=2, starred=True, download_time=datetime(2005, 6, 15, 2)), tables.DatabaseEntry( id=3, path='/tmp', download_time=datetime(2005, 6, 15, 3)), tables.DatabaseEntry( id=4, starred=True, download_time=datetime(2005, 6, 15, 4)), tables.DatabaseEntry( id=6, path='/tmp', starred=True, download_time=datetime(2005, 6, 15, 6)), tables.DatabaseEntry( id=7, download_time=datetime(2005, 6, 15, 7)), tables.DatabaseEntry( id=8, starred=True, download_time=datetime(2005, 6, 15, 8)), tables.DatabaseEntry( id=9, path='/tmp', download_time=datetime(2005, 6, 15, 9))]
def test_walker_create_fitsheader_inverted(session): tag = tables.Tag('foo') tag.id = 1 entries = walker.create(~FitsHeaderEntry('INSTRUME', 'EIT'), session) assert len(entries) == 9 assert entries == [ tables.DatabaseEntry( id=1, download_time=datetime(2005, 6, 15, 1)), tables.DatabaseEntry( id=2, starred=True, download_time=datetime(2005, 6, 15, 2)), tables.DatabaseEntry( id=3, path='/tmp', download_time=datetime(2005, 6, 15, 3)), tables.DatabaseEntry( id=4, starred=True, download_time=datetime(2005, 6, 15, 4)), tables.DatabaseEntry( id=5, tags=[tag], download_time=datetime(2005, 6, 15, 5)), tables.DatabaseEntry( id=6, starred=True, path='/tmp', download_time=datetime(2005, 6, 15, 6)), tables.DatabaseEntry(id=7, download_time=datetime(2005, 6, 15, 7)), tables.DatabaseEntry( id=8, starred=True, download_time=datetime(2005, 6, 15, 8)), tables.DatabaseEntry( id=9, path='/tmp', download_time=datetime(2005, 6, 15, 9))]
def session(): database = Database('sqlite:///:memory:') for i in range(1, 11): entry = tables.DatabaseEntry() database.add(entry) # every entry has a fake download time of 2005-06-15 i:00:00 database.edit(entry, download_time=datetime(2005, 6, 15, i)) # every second entry gets starred if i % 2 == 0: database.star(entry) # every third entry is stored in the path /tmp if i % 3 == 0: database.edit(entry, path='/tmp') # every fifth entry gets the tag 'foo' if i % 5 == 0: database.tag(entry, 'foo') # the last entry gets the FITS header entry INSTRUME=EIT entry.fits_header_entries.append(tables.FitsHeaderEntry('INSTRUME', 'EIT')) database.commit() return database.session
def test_walker_create_path_inverted(session): tag = tables.Tag('foo') tag.id = 1 fits_header_entry = tables.FitsHeaderEntry('INSTRUME', 'EIT') fits_header_entry.id = 1 entries = walker.create(~Path('/tmp'), session) assert len(entries) == 7 assert entries == [ tables.DatabaseEntry( id=1, download_time=datetime(2005, 6, 15, 1)), tables.DatabaseEntry( id=2, starred=True, download_time=datetime(2005, 6, 15, 2)), tables.DatabaseEntry( id=4, starred=True, download_time=datetime(2005, 6, 15, 4)), tables.DatabaseEntry( id=5, tags=[tag], download_time=datetime(2005, 6, 15, 5)), tables.DatabaseEntry(id=7, download_time=datetime(2005, 6, 15, 7)), tables.DatabaseEntry( id=8, starred=True, download_time=datetime(2005, 6, 15, 8)), tables.DatabaseEntry( id=10, starred=True, tags=[tag], download_time=datetime(2005, 6, 15, 10), fits_header_entries=[fits_header_entry])]
def test_walker_create_ored_query(session): entries = walker.create(Tag('foo') | Starred(), session) assert len(entries) == 6 tag = tables.Tag('foo') tag.id = 1 fits_header_entry = tables.FitsHeaderEntry('INSTRUME', 'EIT') fits_header_entry.id = 1 assert tables.DatabaseEntry( id=2, starred=True, download_time=datetime(2005, 6, 15, 2)) in entries assert tables.DatabaseEntry( id=4, starred=True, download_time=datetime(2005, 6, 15, 4)) in entries assert tables.DatabaseEntry( id=5, tags=[tag], download_time=datetime(2005, 6, 15, 5)) in entries assert tables.DatabaseEntry( id=6, path='/tmp', starred=True, download_time=datetime(2005, 6, 15, 6)) in entries assert tables.DatabaseEntry( id=8, starred=True, download_time=datetime(2005, 6, 15, 8)) in entries assert tables.DatabaseEntry( id=10, starred=True, tags=[tag], download_time=datetime(2005, 6, 15, 10), fits_header_entries=[fits_header_entry]) in entries