From 9eef35e2b2116c049545c386924d7a071d8a80da Mon Sep 17 00:00:00 2001 From: Andres Sanchez Date: Wed, 12 Dec 2018 17:40:07 -0600 Subject: [PATCH 1/4] Migrate unit/test_defaults.py from unittest to pytest --- test/unit/test_defaults.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/unit/test_defaults.py b/test/unit/test_defaults.py index c8e769f15..37965768b 100644 --- a/test/unit/test_defaults.py +++ b/test/unit/test_defaults.py @@ -11,8 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. """Test suite to verify calculated values in aws_encryption_sdk.internal.defaults""" -import unittest - import pytest import aws_encryption_sdk.internal.defaults @@ -20,7 +18,7 @@ pytestmark = [pytest.mark.unit, pytest.mark.local] -class TestDefaults(unittest.TestCase): +class TestDefaults(object): def test_max_frame_count(self): max_frame_count = pow(2, 32) - 1 assert aws_encryption_sdk.internal.defaults.MAX_FRAME_COUNT == max_frame_count From 32cdf5b3a6425ac531f10703213d9ace8c189704 Mon Sep 17 00:00:00 2001 From: Andres Sanchez Date: Wed, 12 Dec 2018 17:50:30 -0600 Subject: [PATCH 2/4] Migrate unit/test_providers_base_master_key.py from unittest to pytest --- test/unit/test_providers_base_master_key.py | 30 ++++++++++++--------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/test/unit/test_providers_base_master_key.py b/test/unit/test_providers_base_master_key.py index 86a256c97..2714929c9 100644 --- a/test/unit/test_providers_base_master_key.py +++ b/test/unit/test_providers_base_master_key.py @@ -11,8 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. """Test suite for aws_encryption_sdk.key_providers.base.MasterKey""" -import unittest - import attr import pytest import six @@ -63,8 +61,9 @@ class FakeMasterKey(MockMasterKey): excinfo.match(r'MasterKey config classes must have a "provider_id" attribute defined.') -class TestMasterKey(unittest.TestCase): - def setUp(self): +class TestMasterKey(object): + @pytest.fixture(autouse=True) + def apply_fixture(self): self.mock_data_key_len_check_patcher = patch("aws_encryption_sdk.internal.utils.source_data_key_length_check") self.mock_data_key_len_check = self.mock_data_key_len_check_patcher.start() @@ -85,8 +84,9 @@ def _encrypt_data_key(self, data_key, algorithm, encryption_context): def _decrypt_data_key(self, encrypted_data_key, algorithm, encryption_context): pass - with six.assertRaisesRegex(self, TypeError, "Can't instantiate abstract class TestMasterKey *"): + with pytest.raises(TypeError) as excinfo: TestMasterKey() + excinfo.match("Can't instantiate abstract class TestMasterKey *") def test_generate_data_key_enforcement(self): class TestMasterKey(MasterKey): @@ -98,8 +98,9 @@ def _encrypt_data_key(self, data_key, algorithm, encryption_context): def _decrypt_data_key(self, encrypted_data_key, algorithm, encryption_context): pass - with six.assertRaisesRegex(self, TypeError, "Can't instantiate abstract class TestMasterKey *"): + with pytest.raises(TypeError) as excinfo: TestMasterKey() + excinfo.match("Can't instantiate abstract class TestMasterKey *") def test_encrypt_data_key_enforcement(self): class TestMasterKey(MasterKey): @@ -111,8 +112,9 @@ def _generate_data_key(self, algorithm, encryption_context): def _decrypt_data_key(self, encrypted_data_key, algorithm, encryption_context): pass - with six.assertRaisesRegex(self, TypeError, "Can't instantiate abstract class TestMasterKey *"): + with pytest.raises(TypeError) as excinfo: TestMasterKey() + excinfo.match("Can't instantiate abstract class TestMasterKey *") def test_decrypt_data_key_enforcement(self): class TestMasterKey(MasterKey): @@ -124,8 +126,9 @@ def _generate_data_key(self, algorithm, encryption_context): def _encrypt_data_key(self, data_key, algorithm, encryption_context): pass - with six.assertRaisesRegex(self, TypeError, "Can't instantiate abstract class TestMasterKey *"): + with pytest.raises(TypeError) as excinfo: TestMasterKey() + excinfo.match("Can't instantiate abstract class TestMasterKey *") def test_new(self): mock_master_key = MockMasterKey( @@ -142,10 +145,9 @@ def test_new_conf_mismatch(self): mock_config = MagicMock() mock_config.__class__ = MockMasterKeyConfig mock_config.provider_id = sentinel.mismatched_provider_id - with six.assertRaisesRegex( - self, ConfigMismatchError, "Config provider_id does not match MasterKey provider_id: *" - ): + with pytest.raises(ConfigMismatchError) as excinfo: MockMasterKey(config=mock_config) + excinfo.match("Config provider_id does not match MasterKey provider_id: *") def test_owns_data_key_owned(self): mock_master_key = MockMasterKey( @@ -220,8 +222,9 @@ def test_new_master_key_invalid(self): mock_encrypted_data_key=sentinel.encrypted_data_key, mock_decrypted_data_key=sentinel.decrypted_data_key, ) - with six.assertRaisesRegex(self, InvalidKeyIdError, "MasterKeys can only provide themselves. *"): + with pytest.raises(InvalidKeyIdError) as excinfo: mock_master_key._new_master_key(sentinel.another_key_id) + excinfo.match("MasterKeys can only provide themselves. *") def test_key_check_valid(self): mock_master_key = MockMasterKey( @@ -243,8 +246,9 @@ def test_key_check_invalid(self): ) mock_data_key = MagicMock() mock_data_key.key_provider = sentinel.another_key_provider - with six.assertRaisesRegex(self, IncorrectMasterKeyError, "Provided data key provider *"): + with pytest.raises(IncorrectMasterKeyError) as excinfo: mock_master_key._key_check(mock_data_key) + excinfo.match("Provided data key provider *") def test_generate_data_key(self): mock_master_key = MockMasterKey( From b5808b73e7fa6462c8a6cc702cc4a027efa76aab Mon Sep 17 00:00:00 2001 From: Andres Sanchez Date: Thu, 13 Dec 2018 11:36:49 -0600 Subject: [PATCH 3/4] Removed one test from previous commit --- test/unit/test_defaults.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/unit/test_defaults.py b/test/unit/test_defaults.py index 37965768b..c8e769f15 100644 --- a/test/unit/test_defaults.py +++ b/test/unit/test_defaults.py @@ -11,6 +11,8 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. """Test suite to verify calculated values in aws_encryption_sdk.internal.defaults""" +import unittest + import pytest import aws_encryption_sdk.internal.defaults @@ -18,7 +20,7 @@ pytestmark = [pytest.mark.unit, pytest.mark.local] -class TestDefaults(object): +class TestDefaults(unittest.TestCase): def test_max_frame_count(self): max_frame_count = pow(2, 32) - 1 assert aws_encryption_sdk.internal.defaults.MAX_FRAME_COUNT == max_frame_count From 88b1d82892ffd86df3fe67bc4f6a655ace558e45 Mon Sep 17 00:00:00 2001 From: Andres Sanchez Date: Mon, 17 Dec 2018 13:46:47 -0600 Subject: [PATCH 4/4] Removed unused import and added yield and tearDown to apply_fixtures function --- test/unit/test_providers_base_master_key.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/unit/test_providers_base_master_key.py b/test/unit/test_providers_base_master_key.py index 2714929c9..26a90ced8 100644 --- a/test/unit/test_providers_base_master_key.py +++ b/test/unit/test_providers_base_master_key.py @@ -13,7 +13,6 @@ """Test suite for aws_encryption_sdk.key_providers.base.MasterKey""" import attr import pytest -import six from mock import MagicMock, patch, sentinel from aws_encryption_sdk.exceptions import ConfigMismatchError, IncorrectMasterKeyError, InvalidKeyIdError @@ -66,8 +65,8 @@ class TestMasterKey(object): def apply_fixture(self): self.mock_data_key_len_check_patcher = patch("aws_encryption_sdk.internal.utils.source_data_key_length_check") self.mock_data_key_len_check = self.mock_data_key_len_check_patcher.start() - - def tearDown(self): + yield + # Run tearDown self.mock_data_key_len_check_patcher.stop() def test_parent(self):