mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
bindings/python-cffi: add matched property to message objects
Existing users of the legacy python bindings use message.get_flags(Message.FLAG.MATCH) to determine which messages in a thread matched. Since the bindings don't provide get_flags anymore, they should provide a property analogous to the existing "excluded" property.
This commit is contained in:
parent
e9c55864cd
commit
9cc026f3da
3 changed files with 24 additions and 0 deletions
|
@ -205,6 +205,20 @@ class Message(base.NotmuchObject):
|
||||||
self._msg_p, capi.lib.NOTMUCH_MESSAGE_FLAG_EXCLUDED)
|
self._msg_p, capi.lib.NOTMUCH_MESSAGE_FLAG_EXCLUDED)
|
||||||
return bool(ret)
|
return bool(ret)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def matched(self):
|
||||||
|
"""Indicates whether this message was matched by the query.
|
||||||
|
|
||||||
|
When a thread is created from a search, some of the
|
||||||
|
messages may not match the original query. This property
|
||||||
|
is set to *True* for those that do match.
|
||||||
|
|
||||||
|
:raises ObjectDestroyedError: if used after destroyed.
|
||||||
|
"""
|
||||||
|
ret = capi.lib.notmuch_message_get_flag(
|
||||||
|
self._msg_p, capi.lib.NOTMUCH_MESSAGE_FLAG_MATCH)
|
||||||
|
return bool(ret)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def date(self):
|
def date(self):
|
||||||
"""The message date as an integer.
|
"""The message date as an integer.
|
||||||
|
|
|
@ -97,6 +97,9 @@ class TestMessage:
|
||||||
def test_ghost_no(self, msg):
|
def test_ghost_no(self, msg):
|
||||||
assert not msg.ghost
|
assert not msg.ghost
|
||||||
|
|
||||||
|
def test_matched_no(self,msg):
|
||||||
|
assert not msg.matched
|
||||||
|
|
||||||
def test_date(self, msg):
|
def test_date(self, msg):
|
||||||
# XXX Someone seems to treat things as local time instead of
|
# XXX Someone seems to treat things as local time instead of
|
||||||
# UTC or the other way around.
|
# UTC or the other way around.
|
||||||
|
|
|
@ -57,6 +57,13 @@ def test_iter(thread):
|
||||||
def test_matched(thread):
|
def test_matched(thread):
|
||||||
assert thread.matched == 1
|
assert thread.matched == 1
|
||||||
|
|
||||||
|
def test_matched_iter(thread):
|
||||||
|
count = 0
|
||||||
|
msgs = list(iter(thread))
|
||||||
|
for msg in msgs:
|
||||||
|
if msg.matched:
|
||||||
|
count += 1
|
||||||
|
assert count == thread.matched
|
||||||
|
|
||||||
def test_authors_type(thread):
|
def test_authors_type(thread):
|
||||||
assert isinstance(thread.authors, notmuch2.BinString)
|
assert isinstance(thread.authors, notmuch2.BinString)
|
||||||
|
|
Loading…
Reference in a new issue