From 1c2f7f07d34b6e061a05833924e818d8ca66a044 Mon Sep 17 00:00:00 2001 From: Thomas Jarosch Date: Mon, 27 Jan 2020 16:04:16 +0100 Subject: [PATCH] Change unit tests to check for expected exception It would be an error if the expected exception is not thrown f.e. for re-use of IVs. --- testing/test_crypto.py | 52 +++++++++++---------------------------------- testing/test_deltatar.py | 4 +-- 2 files changed, 14 insertions(+), 42 deletions(-) diff --git a/testing/test_crypto.py b/testing/test_crypto.py index 8ed4748..a038aa0 100644 --- a/testing/test_crypto.py +++ b/testing/test_crypto.py @@ -94,39 +94,31 @@ class AESGCMTest (CryptoLayerTest): """ Either key (+nacl) or password must be supplied, not both. """ - try: + with self.assertRaises (crypto.InvalidParameter): # neither key nor pw encryptor = crypto.Encrypt (TEST_VERSION, TEST_PARAMVERSION, nacl=TEST_STATIC_NACL) - except crypto.InvalidParameter: # neither key nor pw - pass password = str (os.urandom (42)) key = os.urandom (16) # scrypt sized - try: + with self.assertRaises (crypto.InvalidParameter): # both key and pw encryptor = crypto.Encrypt (TEST_VERSION, TEST_PARAMVERSION, password=password, key=key, nacl=TEST_STATIC_NACL) - except crypto.InvalidParameter: # both key and pw - pass - try: + with self.assertRaises (crypto.InvalidParameter): # key, but salt missing encryptor = crypto.Encrypt (TEST_VERSION, TEST_PARAMVERSION, key=key, nacl=None) - except crypto.InvalidParameter: # key, but salt missing - pass - try: + with self.assertRaises (crypto.InvalidParameter): # empty pw encryptor = crypto.Encrypt (TEST_VERSION, TEST_PARAMVERSION, password=b"", nacl=TEST_STATIC_NACL) - except crypto.InvalidParameter: # empty pw - pass def test_crypto_aes_gcm_enc_header_size (self): @@ -167,20 +159,14 @@ class AESGCMTest (CryptoLayerTest): decryptor = crypto.Decrypt (password=password) decryptor = crypto.Decrypt (key=key) - try: + with self.assertRaises (crypto.InvalidParameter): # both password and key decryptor = crypto.Decrypt (password=password, key=key) - except crypto.InvalidParameter: # both password and key - pass - try: + with self.assertRaises (crypto.InvalidParameter): # neither password nor key decryptor = crypto.Decrypt (password=None, key=None) - except crypto.InvalidParameter: # neither password nor key - pass - try: + with self.assertRaises (crypto.InvalidParameter): # # empty password decryptor = crypto.Decrypt (password="") - except crypto.InvalidParameter: # empty password - pass def test_crypto_aes_gcm_dec_simple (self): @@ -225,10 +211,8 @@ class AESGCMTest (CryptoLayerTest): decryptor = crypto.Decrypt (password=password, fixedparts=fixed) decryptor.next (header) plaintext = decryptor.process (ciphertext) - try: + with self.assertRaises (crypto.InvalidGCMTag): _ = decryptor.done () - except crypto.InvalidGCMTag: - pass def test_crypto_aes_gcm_enc_multicnk (self): @@ -551,10 +535,8 @@ class AESGCMTest (CryptoLayerTest): pt += cnk off += cnksiz - try: + with self.assertRaises (crypto.InvalidGCMTag): _ = decryptor.done () - except crypto.InvalidGCMTag: - pass def test_crypto_aes_gcm_dec_iv_reuse (self): @@ -613,10 +595,8 @@ class AESGCMTest (CryptoLayerTest): decr_pt_1 = dec (hdr_1, ct_1) decr_pt_2 = dec (hdr_2, ct_2) # good header, different IV - try: + with self.assertRaises (crypto.DuplicateIV): # bad header, reuse detected decr_pt_2 = dec (hdr_2_mod, ct_2) - except crypto.DuplicateIV: # bad header, reuse detected - pass class HeaderTest (CryptoLayerTest): @@ -654,10 +634,8 @@ class HeaderTest (CryptoLayerTest): assert ok is True assert hdr is not None hdr += b"-junk" - try: + with self.assertRaises (crypto.InvalidHeader): _ = crypto.hdr_read (hdr) - except crypto.InvalidHeader: - pass def test_crypto_fmt_hdr_read_leading_garbage (self): @@ -667,10 +645,8 @@ class HeaderTest (CryptoLayerTest): assert ok is True assert hdr is not None hdr = b"junk-" + hdr - try: + with self.assertRaises (crypto.InvalidHeader): _ = crypto.hdr_read (hdr) - except crypto.InvalidHeader: - pass def test_crypto_fmt_hdr_inner_garbage (self): @@ -678,8 +654,6 @@ class HeaderTest (CryptoLayerTest): ok, hdr = crypto.hdr_make (meta) assert ok data = hdr[:len(hdr)//2] + b"junk-" + hdr[len(hdr)//2:] - try: + with self.assertRaises (crypto.InvalidHeader): _ = crypto.hdr_read (data) - except crypto.InvalidHeader: - pass diff --git a/testing/test_deltatar.py b/testing/test_deltatar.py index a7b3d92..9ae02a7 100644 --- a/testing/test_deltatar.py +++ b/testing/test_deltatar.py @@ -248,11 +248,9 @@ class DeltaTarTest(BaseTest): f = "source_dir2/dummy_%rd" % i self.hash [f] = self.create_file (f, i) - try: + with self.assertRaises (crypto.InvalidFileCounter): deltatar.create_full_backup \ (source_path="source_dir2", backup_path="backup_dir") - except crypto.InvalidFileCounter: - pass shutil.rmtree ("source_dir2") -- 1.7.1