Пример #1
0
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])
    ]
Пример #2
0
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])
    ]
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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])]
Пример #6
0
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
Пример #7
0
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