From 73e7e31a63d15b42b8285bf4eaaa6bd72c89a0b3 Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Fri, 6 May 2022 04:31:10 -0400 Subject: [PATCH] UT: Fix names in test_aws_metadata.py --- .../common/aws/test_aws_metadata.py | 98 ++++++++----------- 1 file changed, 40 insertions(+), 58 deletions(-) diff --git a/monkey/tests/unit_tests/common/aws/test_aws_metadata.py b/monkey/tests/unit_tests/common/aws/test_aws_metadata.py index e374da309..470e41e01 100644 --- a/monkey/tests/unit_tests/common/aws/test_aws_metadata.py +++ b/monkey/tests/unit_tests/common/aws/test_aws_metadata.py @@ -38,7 +38,7 @@ EXPECTED_REGION = "us-west-2" EXPECTED_ACCOUNT_ID = "123456789012" -def get_test_aws_instance( +def patch_and_call_fetch_aws_instance_metadata( text=MappingProxyType({"instance_id": None, "region": None, "account_id": None}), exception=MappingProxyType({"instance_id": None, "region": None, "account_id": None}), ): @@ -64,86 +64,80 @@ def get_test_aws_instance( # all good data @pytest.fixture -def good_data_mock_instance(): - instance = get_test_aws_instance( +def good_metadata(): + return patch_and_call_fetch_aws_instance_metadata( text={ "instance_id": INSTANCE_ID_RESPONSE, "region": AVAILABILITY_ZONE_RESPONSE, "account_id": INSTANCE_IDENTITY_DOCUMENT_RESPONSE, } ) - yield instance - del instance -def test_instance_id_good_data(good_data_mock_instance): - assert good_data_mock_instance[0] == EXPECTED_INSTANCE_ID +def test_instance_id_good_data(good_metadata): + assert good_metadata[0] == EXPECTED_INSTANCE_ID -def test_region_good_data(good_data_mock_instance): - assert good_data_mock_instance[1] == EXPECTED_REGION +def test_region_good_data(good_metadata): + assert good_metadata[1] == EXPECTED_REGION -def test_account_id_good_data(good_data_mock_instance): - assert good_data_mock_instance[2] == EXPECTED_ACCOUNT_ID +def test_account_id_good_data(good_metadata): + assert good_metadata[2] == EXPECTED_ACCOUNT_ID # 'region' bad data @pytest.fixture -def bad_region_data_mock_instance(): - instance = get_test_aws_instance( +def bad_region_metadata(): + return patch_and_call_fetch_aws_instance_metadata( text={ "instance_id": INSTANCE_ID_RESPONSE, "region": "in-a-different-world", "account_id": INSTANCE_IDENTITY_DOCUMENT_RESPONSE, } ) - yield instance - del instance -def test_instance_id_bad_region_data(bad_region_data_mock_instance): - assert bad_region_data_mock_instance[0] == EXPECTED_INSTANCE_ID +def test_instance_id_bad_region_data(bad_region_metadata): + assert bad_region_metadata[0] == EXPECTED_INSTANCE_ID -def test_region_bad_region_data(bad_region_data_mock_instance): - assert bad_region_data_mock_instance[1] is None +def test_region_bad_region_data(bad_region_metadata): + assert bad_region_metadata[1] is None -def test_account_id_bad_region_data(bad_region_data_mock_instance): - assert bad_region_data_mock_instance[2] == EXPECTED_ACCOUNT_ID +def test_account_id_bad_region_data(bad_region_metadata): + assert bad_region_metadata[2] == EXPECTED_ACCOUNT_ID # 'account_id' bad data @pytest.fixture -def bad_account_id_data_mock_instance(): - instance = get_test_aws_instance( +def bad_account_id_metadata(): + return patch_and_call_fetch_aws_instance_metadata( text={ "instance_id": INSTANCE_ID_RESPONSE, "region": AVAILABILITY_ZONE_RESPONSE, "account_id": "who-am-i", } ) - yield instance - del instance -def test_instance_id_bad_account_id_data(bad_account_id_data_mock_instance): - assert bad_account_id_data_mock_instance[0] is None +def test_instance_id_bad_account_id_data(bad_account_id_metadata): + assert bad_account_id_metadata[0] is None -def test_region_bad_account_id_data(bad_account_id_data_mock_instance): - assert bad_account_id_data_mock_instance[1] is None +def test_region_bad_account_id_data(bad_account_id_metadata): + assert bad_account_id_metadata[1] is None -def test_account_id_data_bad_account_id_data(bad_account_id_data_mock_instance): - assert bad_account_id_data_mock_instance[2] is None +def test_account_id_data_bad_account_id_data(bad_account_id_metadata): + assert bad_account_id_metadata[2] is None # 'region' bad requests @pytest.fixture -def bad_region_request_mock_instance(region_exception): - instance = get_test_aws_instance( +def region_request_failure_metadata(region_exception): + return patch_and_call_fetch_aws_instance_metadata( text={ "instance_id": INSTANCE_ID_RESPONSE, "region": None, @@ -151,28 +145,26 @@ def bad_region_request_mock_instance(region_exception): }, exception={"instance_id": None, "region": region_exception, "account_id": None}, ) - yield instance - del instance @pytest.mark.parametrize("region_exception", [requests.RequestException, IOError]) -def test_instance_id_bad_region_request(bad_region_request_mock_instance): - assert bad_region_request_mock_instance[0] is None +def test_instance_id_bad_region_request(region_request_failure_metadata): + assert region_request_failure_metadata[0] is None @pytest.mark.parametrize("region_exception", [requests.RequestException, IOError]) -def test_region_bad_region_request(bad_region_request_mock_instance): - assert bad_region_request_mock_instance[1] is None +def test_region_bad_region_request(region_request_failure_metadata): + assert region_request_failure_metadata[1] is None @pytest.mark.parametrize("region_exception", [requests.RequestException, IOError]) -def test_account_id_bad_region_request(bad_region_request_mock_instance): - assert bad_region_request_mock_instance[2] is None +def test_account_id_bad_region_request(region_request_failure_metadata): + assert region_request_failure_metadata[2] is None # not found request @pytest.fixture -def not_found_request_mock_instance(): +def not_found_metadata(): with requests_mock.Mocker() as m: # request made to get instance_id url = f"{AWS_LATEST_METADATA_URI_PREFIX}meta-data/instance-id" @@ -189,23 +181,13 @@ def not_found_request_mock_instance(): return fetch_aws_instance_metadata() -def test_instance_id_not_found_request(not_found_request_mock_instance): - assert not_found_request_mock_instance[0] is None +def test_instance_id_not_found_request(not_found_metadata): + assert not_found_metadata[0] is None -def test_region_not_found_request(not_found_request_mock_instance): - assert not_found_request_mock_instance[1] is None +def test_region_not_found_request(not_found_metadata): + assert not_found_metadata[1] is None -def test_account_id_not_found_request(not_found_request_mock_instance): - assert not_found_request_mock_instance[2] is None - - -def test_instance_id_4xx_error_code(): - with requests_mock.Mocker() as m: - # request made to get instance_id - url = f"{AWS_LATEST_METADATA_URI_PREFIX}meta-data/instance-id" - m.get(url, text="1234", status_code=404) - - result = fetch_aws_instance_metadata() - assert result[0] is None +def test_account_id_not_found_request(not_found_metadata): + assert not_found_metadata[2] is None