aboutsummaryrefslogtreecommitdiff
path: root/test/T390-python.sh
diff options
context:
space:
mode:
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>2017-12-19 14:08:50 -0500
committerDavid Bremner <david@tethera.net>2017-12-24 09:47:35 -0400
commit6aec7a76b9e70544a93b092c50d167c3e63548ee (patch)
treeed9b6069745122023e395548f5bec0842b4a9481 /test/T390-python.sh
parente0ac149955686353570c19c9949c9032d46fb30f (diff)
python: add decrypt_policy argument to Database.index_file()
We adopt a pythonic idiom here with an optional argument, rather than exposing the user to the C indexopts object directly. This now includes a simple test to ensure that the decrypt_policy argument works as expected.
Diffstat (limited to 'test/T390-python.sh')
-rwxr-xr-xtest/T390-python.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/T390-python.sh b/test/T390-python.sh
index 312d61e8..9f71ce3c 100755
--- a/test/T390-python.sh
+++ b/test/T390-python.sh
@@ -5,6 +5,7 @@ test_description="python bindings"
test_require_external_prereq ${NOTMUCH_PYTHON}
add_email_corpus
+add_gnupg_home
test_begin_subtest "compare thread ids"
test_python <<EOF
@@ -155,4 +156,42 @@ print(list(v) == [])
EOF
test_expect_equal "$(cat OUTPUT)" "True"
+mkdir -p "${MAIL_DIR}/cur"
+fname="${MAIL_DIR}/cur/simplemsg.eml"
+cat <<EOF > "$fname"
+From: test_suite@notmuchmail.org
+To: test_suite@notmuchmail.org
+Subject: encrypted message
+Date: Sat, 01 Jan 2000 12:00:00 +0000
+Message-ID: <simplemsg@crypto.notmuchmail.org>
+MIME-Version: 1.0
+Content-Type: multipart/encrypted; boundary="=-=-=";
+ protocol="application/pgp-encrypted"
+
+--=-=-=
+Content-Type: application/pgp-encrypted
+
+Version: 1
+
+--=-=-=
+Content-Type: application/octet-stream
+
+$(printf 'Content-Type: text/plain\n\nThis is the sekrit message\n' | gpg --no-tty --batch --quiet --trust-model=always --encrypt --armor --recipient test_suite@notmuchmail.org)
+--=-=-=--
+EOF
+
+test_begin_subtest "index message with decryption"
+test_python <<EOF
+import notmuch
+db = notmuch.Database(mode=notmuch.Database.MODE.READ_WRITE)
+(m, status) = db.index_file('$fname', decrypt_policy=notmuch.Database.DECRYPTION_POLICY.TRUE)
+if status == notmuch.errors.STATUS.DUPLICATE_MESSAGE_ID:
+ print("got duplicate message")
+q_new = notmuch.Query(db, 'sekrit')
+for m in q_new.search_messages():
+ print(m.get_filename())
+EOF
+echo "$fname" > EXPECTED
+test_expect_equal_file EXPECTED OUTPUT
+
test_done