X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=bindings%2Fpython-cffi%2Ftests%2Ftest_database.py;h=f1d12ea6c2f046186377a7ce48b104d3a5855873;hb=HEAD;hp=55069b5e35df85bb0739a1a0d865302c6693af32;hpb=2d895a0119b423b117d10e890c9e0eb5d2a9cdf8;p=notmuch diff --git a/bindings/python-cffi/tests/test_database.py b/bindings/python-cffi/tests/test_database.py index 55069b5e..1557235d 100644 --- a/bindings/python-cffi/tests/test_database.py +++ b/bindings/python-cffi/tests/test_database.py @@ -13,7 +13,7 @@ import notmuch2._message as message @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 @@ -80,7 +80,7 @@ class TestCreate: 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): @@ -127,6 +127,11 @@ class TestAtomic: 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: @@ -288,7 +293,7 @@ class TestQuery: 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): @@ -298,6 +303,18 @@ class TestQuery: 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): @@ -315,6 +332,25 @@ class TestQuery: 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):