unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH] bindings/python: add bindings for notmuch_database_get_revision
@ 2017-03-06 16:37 Gaute Hope
  2017-03-09 12:32 ` David Bremner
  2017-03-09 13:32 ` [PATCH] bindings/python: test python Database.get_revision () Gaute Hope
  0 siblings, 2 replies; 4+ messages in thread
From: Gaute Hope @ 2017-03-06 16:37 UTC (permalink / raw)
  To: notmuch

Database.get_revision () returns a tuple with the current database
revision and the UUID string representing the database.
---
 bindings/python/notmuch/database.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/bindings/python/notmuch/database.py b/bindings/python/notmuch/database.py
index 67fb1c41..8f918069 100644
--- a/bindings/python/notmuch/database.py
+++ b/bindings/python/notmuch/database.py
@@ -86,6 +86,11 @@ class Database(object):
     _get_version.argtypes = [NotmuchDatabaseP]
     _get_version.restype = c_uint
 
+    """notmuch_database_get_revision"""
+    _get_revision = nmlib.notmuch_database_get_revision
+    _get_revision.argtypes = [NotmuchDatabaseP, POINTER(c_char_p)]
+    _get_revision.restype = c_uint
+
     """notmuch_database_open"""
     _open = nmlib.notmuch_database_open
     _open.argtypes = [c_char_p, c_uint, POINTER(NotmuchDatabaseP)]
@@ -261,6 +266,17 @@ class Database(object):
         self._assert_db_is_initialized()
         return Database._get_version(self._db)
 
+    def get_revision (self):
+        """Returns the committed database revison and UUID
+
+        :returns: (revison, uuid) The database revision as a positive integer
+        and the UUID of the database.
+        """
+        self._assert_db_is_initialized()
+        uuid = c_char_p ()
+        revision = Database._get_revision(self._db, byref (uuid))
+        return (revision, uuid.value.decode ('utf-8'))
+
     _needs_upgrade = nmlib.notmuch_database_needs_upgrade
     _needs_upgrade.argtypes = [NotmuchDatabaseP]
     _needs_upgrade.restype = bool
-- 
2.11.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] bindings/python: add bindings for notmuch_database_get_revision
  2017-03-06 16:37 [PATCH] bindings/python: add bindings for notmuch_database_get_revision Gaute Hope
@ 2017-03-09 12:32 ` David Bremner
  2017-03-09 13:32 ` [PATCH] bindings/python: test python Database.get_revision () Gaute Hope
  1 sibling, 0 replies; 4+ messages in thread
From: David Bremner @ 2017-03-09 12:32 UTC (permalink / raw)
  To: Gaute Hope, notmuch

Gaute Hope <eg@gaute.vetsj.com> writes:

> Database.get_revision () returns a tuple with the current database
> revision and the UUID string representing the database.

It would be great if you could add a test for the new API to
T390-python.sh. Probably just translating the C example from
T570-revision-tracking.sh into python would work.

d

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] bindings/python: test python Database.get_revision ()
  2017-03-06 16:37 [PATCH] bindings/python: add bindings for notmuch_database_get_revision Gaute Hope
  2017-03-09 12:32 ` David Bremner
@ 2017-03-09 13:32 ` Gaute Hope
  2017-03-10 11:43   ` David Bremner
  1 sibling, 1 reply; 4+ messages in thread
From: Gaute Hope @ 2017-03-09 13:32 UTC (permalink / raw)
  To: notmuch

Here is a test for Database.get_revision (), based on
the first part of T570-revision-tracking.sh.

---
 test/T390-python.sh | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/test/T390-python.sh b/test/T390-python.sh
index 4726bc36..b27f0740 100755
--- a/test/T390-python.sh
+++ b/test/T390-python.sh
@@ -38,4 +38,23 @@ print (db.find_message_by_filename("i-dont-exist"))
 EOF
 test_expect_equal "$(cat OUTPUT)" "None"
 
+test_begin_subtest "get revision"
+test_python ${MAIL_DIR} <<'EOF'
+import notmuch
+db = notmuch.Database(mode=notmuch.Database.MODE.READ_ONLY)
+(revision, uuid) = db.get_revision()
+print ("%s\t%lu" % (uuid, revision))
+EOF
+notmuch_uuid_sanitize < OUTPUT > CLEAN
+cat <<'EOF' >EXPECTED
+UUID	53
+EOF
+test_expect_equal_file EXPECTED CLEAN
+
+grep '^[0-9a-f]' OUTPUT > INITIAL_OUTPUT
+
+test_begin_subtest "output of count matches test code"
+notmuch count --lastmod '*' | cut -f2-3 > OUTPUT
+test_expect_equal_file INITIAL_OUTPUT OUTPUT
+
 test_done
-- 
2.11.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] bindings/python: test python Database.get_revision ()
  2017-03-09 13:32 ` [PATCH] bindings/python: test python Database.get_revision () Gaute Hope
@ 2017-03-10 11:43   ` David Bremner
  0 siblings, 0 replies; 4+ messages in thread
From: David Bremner @ 2017-03-10 11:43 UTC (permalink / raw)
  To: Gaute Hope, notmuch

Gaute Hope <eg@gaute.vetsj.com> writes:

> Here is a test for Database.get_revision (), based on
> the first part of T570-revision-tracking.sh.

pushed this and the previous patch to master

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-03-10 11:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-06 16:37 [PATCH] bindings/python: add bindings for notmuch_database_get_revision Gaute Hope
2017-03-09 12:32 ` David Bremner
2017-03-09 13:32 ` [PATCH] bindings/python: test python Database.get_revision () Gaute Hope
2017-03-10 11:43   ` David Bremner

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).