From 6049d666cdd18b401d359528ecebb7fc0e123394 Mon Sep 17 00:00:00 2001 From: Caitlin Tibbetts Date: Fri, 19 Jul 2019 15:34:47 -0700 Subject: [PATCH 1/6] Added a check for max_age being greater than 0 --- src/aws_encryption_sdk/materials_managers/caching.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/aws_encryption_sdk/materials_managers/caching.py b/src/aws_encryption_sdk/materials_managers/caching.py index b2bdcba9f..c1ebb9568 100644 --- a/src/aws_encryption_sdk/materials_managers/caching.py +++ b/src/aws_encryption_sdk/materials_managers/caching.py @@ -108,6 +108,9 @@ def __attrs_post_init__(self): if self.max_bytes_encrypted > MAX_BYTES_PER_KEY: raise ValueError("max_bytes_encrypted cannot exceed {}".format(MAX_BYTES_PER_KEY)) + if self.max_age <= 0: + raise ValueError("max_age cannot be less than or equal to 0") + if self.backing_materials_manager is None: if self.master_key_provider is None: raise TypeError("Either backing_materials_manager or master_key_provider must be defined") From 17595059c0149737d167593458b1591fcdbc6fd1 Mon Sep 17 00:00:00 2001 From: Tibbetts Date: Fri, 19 Jul 2019 22:14:46 -0700 Subject: [PATCH 2/6] Fixed flake8 by adding missing pydocstyle dependency --- tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/tox.ini b/tox.ini index e13ea2cb8..06564ef6a 100644 --- a/tox.ini +++ b/tox.ini @@ -117,6 +117,7 @@ basepython = python3 deps = flake8 flake8-docstrings + pydocstyle<4.0.0 # https://github.com/JBKahn/flake8-print/pull/30 flake8-print>=3.1.0 flake8-bugbear From ced2de4e08fa08be07c41e405f82921c88d0c66a Mon Sep 17 00:00:00 2001 From: Caitlin Tibbetts Date: Fri, 19 Jul 2019 22:35:45 -0700 Subject: [PATCH 3/6] Added the dependency to decrypt_oracle as well --- decrypt_oracle/tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/decrypt_oracle/tox.ini b/decrypt_oracle/tox.ini index 60aea91c7..f0a7804e5 100644 --- a/decrypt_oracle/tox.ini +++ b/decrypt_oracle/tox.ini @@ -156,6 +156,7 @@ basepython = python3 deps = flake8 flake8-docstrings + pydocstyle<4.0.0 # https://github.com/JBKahn/flake8-print/pull/30 flake8-print>=3.1.0 commands = From ee5d9ef80da7b9d864cef010d49b76f8b398383b Mon Sep 17 00:00:00 2001 From: Caitlin Tibbetts Date: Fri, 19 Jul 2019 22:57:26 -0700 Subject: [PATCH 4/6] Added test for max_age<=0 ValueError --- test/unit/test_material_managers_caching.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/unit/test_material_managers_caching.py b/test/unit/test_material_managers_caching.py index 426fe3348..6ce44210c 100644 --- a/test/unit/test_material_managers_caching.py +++ b/test/unit/test_material_managers_caching.py @@ -117,6 +117,7 @@ def test_mkp_to_default_cmm(mocker): dict(max_bytes_encrypted=MAX_BYTES_PER_KEY + 1), r"max_bytes_encrypted cannot exceed {}".format(MAX_BYTES_PER_KEY), ), + (dict(max_age=0), r"max_age cannot be less than or equal to 0"), ), ) def test_invalid_values(invalid_kwargs, error_message): From 150ac98b65b03114d4d9c50e9ca98aa36fe47d80 Mon Sep 17 00:00:00 2001 From: Caitlin Tibbetts Date: Fri, 19 Jul 2019 23:07:57 -0700 Subject: [PATCH 5/6] Updated test for max_age<=0.0 ValueError --- src/aws_encryption_sdk/materials_managers/caching.py | 2 +- test/unit/test_material_managers_caching.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/aws_encryption_sdk/materials_managers/caching.py b/src/aws_encryption_sdk/materials_managers/caching.py index c1ebb9568..992a39a7a 100644 --- a/src/aws_encryption_sdk/materials_managers/caching.py +++ b/src/aws_encryption_sdk/materials_managers/caching.py @@ -108,7 +108,7 @@ def __attrs_post_init__(self): if self.max_bytes_encrypted > MAX_BYTES_PER_KEY: raise ValueError("max_bytes_encrypted cannot exceed {}".format(MAX_BYTES_PER_KEY)) - if self.max_age <= 0: + if self.max_age <= 0.0: raise ValueError("max_age cannot be less than or equal to 0") if self.backing_materials_manager is None: diff --git a/test/unit/test_material_managers_caching.py b/test/unit/test_material_managers_caching.py index 6ce44210c..55964415d 100644 --- a/test/unit/test_material_managers_caching.py +++ b/test/unit/test_material_managers_caching.py @@ -117,7 +117,7 @@ def test_mkp_to_default_cmm(mocker): dict(max_bytes_encrypted=MAX_BYTES_PER_KEY + 1), r"max_bytes_encrypted cannot exceed {}".format(MAX_BYTES_PER_KEY), ), - (dict(max_age=0), r"max_age cannot be less than or equal to 0"), + (dict(max_age=0.0), r"max_age cannot be less than or equal to 0"), ), ) def test_invalid_values(invalid_kwargs, error_message): From 4ea86d85bb424603943bd97f4bfa390b10ce209e Mon Sep 17 00:00:00 2001 From: Caitlin Tibbetts Date: Mon, 22 Jul 2019 13:12:48 -0700 Subject: [PATCH 6/6] Added negative test case --- test/unit/test_material_managers_caching.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/unit/test_material_managers_caching.py b/test/unit/test_material_managers_caching.py index 55964415d..833d6aa53 100644 --- a/test/unit/test_material_managers_caching.py +++ b/test/unit/test_material_managers_caching.py @@ -118,6 +118,7 @@ def test_mkp_to_default_cmm(mocker): r"max_bytes_encrypted cannot exceed {}".format(MAX_BYTES_PER_KEY), ), (dict(max_age=0.0), r"max_age cannot be less than or equal to 0"), + (dict(max_age=-1.0), r"max_age cannot be less than or equal to 0"), ), ) def test_invalid_values(invalid_kwargs, error_message):