예제 #1
0
    def test_retries(
        self,
        v2_failure_count,
        v1_failure_count,
        expected_body,
        expectation,
        httpretty,
    ):
        v2_responses = [httpretty.Response("", status=404)] * v2_failure_count
        v2_responses.append(httpretty.Response(OPC_V2_METADATA))
        v1_responses = [httpretty.Response("", status=404)] * v1_failure_count
        v1_responses.append(httpretty.Response(OPC_V1_METADATA))

        httpretty.register_uri(
            httpretty.GET,
            "http://169.254.169.254/opc/v1/instance/",
            responses=v1_responses,
        )
        httpretty.register_uri(
            httpretty.GET,
            "http://169.254.169.254/opc/v2/instance/",
            responses=v2_responses,
        )
        with expectation:
            assert expected_body == oracle.read_opc_metadata().instance_data
예제 #2
0
    def test_metadata_returned(self, version, setup_urls, instance_data,
                               fetch_vnics, vnics_data, httpretty):
        setup_urls(httpretty)
        metadata = oracle.read_opc_metadata(fetch_vnics_data=fetch_vnics)

        assert version == metadata.version
        assert instance_data == metadata.instance_data
        assert vnics_data == metadata.vnics_data
예제 #3
0
 def test_retries(self, expectation, failure_count, httpretty):
     responses = [httpretty.Response("", status=404)] * failure_count
     responses.append(httpretty.Response(OPC_V1_METADATA))
     httpretty.register_uri(
         httpretty.GET,
         "http://169.254.169.254/opc/v1/instance/",
         responses=responses,
     )
     expected = json.loads(OPC_V1_METADATA)
     with expectation:
         assert expected == oracle.read_opc_metadata()
예제 #4
0
    def test_fetch_vnics_error(self, caplog):
        def mocked_fetch(*args, path="instance", **kwargs):
            if path == "vnics":
                raise UrlError("cause")

        with mock.patch(DS_PATH + "._fetch", side_effect=mocked_fetch):
            opc_metadata = oracle.read_opc_metadata(fetch_vnics_data=True)
            assert None is opc_metadata.vnics_data
        assert (
            logging.WARNING,
            "Failed to fetch IMDS network configuration!",
        ) == caplog.record_tuples[-2][1:]
예제 #5
0
 def test_json_decoded_value_returned(self):
     # read_opc_metadata should JSON decode the response and return it
     expected = json.loads(OPC_V1_METADATA)
     assert expected == oracle.read_opc_metadata()