@pytest.fixture
def db(maildir):
- with dbmod.Database.create(maildir.path) as db:
+ with dbmod.Database.create(maildir.path, config=notmuch2.Database.CONFIG.EMPTY) as db:
yield db
db.create(tmppath)
def test_create_existing(self, tmppath, db):
- with pytest.raises(errors.FileError):
+ with pytest.raises(errors.DatabaseExistsError):
dbmod.Database.create(path=tmppath)
def test_close(self, db):
with pytest.raises(errors.UnbalancedAtomicError):
ctx.force_end()
+ def test_abort(self, db):
+ with db.atomic() as txn:
+ txn.abort()
+ assert db.closed
+
class TestRevision:
maildir.deliver(body='baz',
headers=[('In-Reply-To', '<{}>'.format(msgid))])
notmuch('new')
- with dbmod.Database(maildir.path, 'rw') as db:
+ with dbmod.Database(maildir.path, 'rw', config=notmuch2.Database.CONFIG.EMPTY) as db:
yield db
def test_count_messages(self, db):
msgs = db.messages('*')
assert isinstance(msgs, collections.abc.Iterator)
+ def test_messages_iterator(self, db):
+ for msg in db.messages('*'):
+ assert isinstance(msg, notmuch2.Message)
+ assert isinstance(msg.messageid, str)
+
+ def test_messages_iterator_list(self, db):
+ msgs = list(db.messages('*'))
+ assert len(msgs) == 3
+ for msg in msgs:
+ assert isinstance(msg, notmuch2.Message)
+ assert isinstance(msg.messageid, str)
+
def test_message_no_results(self, db):
msgs = db.messages('not_a_matching_query')
with pytest.raises(StopIteration):
threads = db.threads('*')
assert isinstance(threads, collections.abc.Iterator)
+ def test_threads_iterator(self, db):
+ for t in db.threads('*'):
+ assert isinstance(t, notmuch2.Thread)
+ assert isinstance(t.threadid, str)
+ for msg in t:
+ assert isinstance(msg, notmuch2.Message)
+ assert isinstance(msg.messageid, str)
+
+ def test_threads_iterator_list(self, db):
+ threads = list(db.threads('*'))
+ assert len(threads) == 2
+ for t in threads:
+ assert isinstance(t, notmuch2.Thread)
+ assert isinstance(t.threadid, str)
+ msgs = list(t)
+ for msg in msgs:
+ assert isinstance(msg, notmuch2.Message)
+ assert isinstance(msg.messageid, str)
+
def test_threads_no_match(self, db):
threads = db.threads('not_a_matching_query')
with pytest.raises(StopIteration):