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_downloadtime_inverted(session): tag = tables.Tag('foo') tag.id = 1 fits_header_entry = tables.FitsHeaderEntry('INSTRUME', 'EIT') fits_header_entry.id = 1 download_time = ~DownloadTime(datetime(2005, 6, 15, 7), datetime(2005, 6, 15, 9)) entries = walker.create(download_time, 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=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=10, starred=True, tags=[tag], download_time=datetime(2005, 6, 15, 10), fits_header_entries=[fits_header_entry]) ]
def test_walker_create_complex_query(session): query = Tag('foo') & Starred() | ~Tag('foo') & ~Starred() entries = walker.create(query, session) assert len(entries) == 5 tag = tables.Tag('foo') tag.id = 1 fits_header_entry = tables.FitsHeaderEntry('INSTRUME', 'EIT') fits_header_entry.id = 1 assert tables.DatabaseEntry(id=1, download_time=datetime(2005, 6, 15, 1)) in entries assert tables.DatabaseEntry(id=3, path='/tmp', download_time=datetime(2005, 6, 15, 3)) in entries assert tables.DatabaseEntry(id=7, download_time=datetime(2005, 6, 15, 7)) in entries assert tables.DatabaseEntry(id=9, path='/tmp', download_time=datetime(2005, 6, 15, 9)) 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
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
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_anded_query(session): entries = walker.create(Tag('foo') & Starred(), session) assert len(entries) == 1 tag = tables.Tag('foo') tag.id = 1 fits_header_entry = tables.FitsHeaderEntry('INSTRUME', 'EIT') fits_header_entry.id = 1 assert tables.DatabaseEntry( id=10, starred=True, tags=[tag], download_time=datetime(2005, 6, 15, 10), fits_header_entries=[fits_header_entry]) in entries
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