summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJames R. Barlow <jim@purplerock.ca>2019-06-20 01:07:34 -0700
committerJames R. Barlow <jim@purplerock.ca>2019-06-20 01:07:34 -0700
commitdee3001987a9ea44a688f0c709f8594e11045f41 (patch)
tree6e21820c4c1c8a02911894ec4d6002aad5ab3490 /tests
parentb194645550fb14f3bd22df73d67a11e474d54659 (diff)
Encryption, fix some features not fully mapped
Diffstat (limited to 'tests')
-rw-r--r--tests/test_encrypt.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/test_encrypt.py b/tests/test_encrypt.py
index 272aad3..fc9c6cb 100644
--- a/tests/test_encrypt.py
+++ b/tests/test_encrypt.py
@@ -65,3 +65,24 @@ def test_encrypt_info(trivial, outpdf):
pdf = pikepdf.open(outpdf, password='foo')
assert pdf.encryption.user_password == b'bar'
assert pdf.encryption.bits == 128
+
+
+@pytest.mark.parametrize(
+ "R,owner,user,aes,metadata,err",
+ [
+ (6, "foo", "bar", 42, False, r"aes.*bool"),
+ (6, "password", "password", True, 42, r"metadata.*bool"),
+ (3, "12345678", "secret", False, True, r"metadata.*R < 4"),
+ (2, "qwerty", "123456", True, False, r"AES.*R < 4"),
+ (6, "rc4", "rc4", False, True, r"R = 6.*AES"),
+ (4, "met", "met", False, True, r"unless AES"),
+ ],
+)
+def test_bad_settings(trivial, outpdf, R, owner, user, aes, metadata, err):
+ with pytest.raises(Exception, match=err):
+ trivial.save(
+ outpdf,
+ encryption=pikepdf.Encryption(
+ R=R, owner=owner, user=user, aes=aes, metadata=metadata
+ ),
+ )