def test_it_defaults_task_id_if_env_variable_not_set(logger_mock, url_open_mock): get_emitter_id.cache_clear() resp = get_emitter_id() assert "ECSTask" == resp logger_mock.warning.assert_not_called() url_open_mock.assert_not_called()
def test_it_defaults_task_id_if_generic_error(logger_mock, url_open_mock): get_emitter_id.cache_clear() res = MagicMock() url_open_mock.return_value = res res.read.side_effect = NameError("error") resp = get_emitter_id() assert "ECSTask" == resp logger_mock.warning.assert_called_with("Error when getting emitter id from metadata service: error")
def test_it_defaults_task_id_if_malformed_response(logger_mock, url_open_mock): get_emitter_id.cache_clear() res = MagicMock() url_open_mock.return_value = res res.read.return_value = b'{}\n' resp = get_emitter_id() assert "ECSTask" == resp logger_mock.warning.assert_called_with("Malformed response from the metadata service: b'{}\\n'")
def test_it_defaults_task_id_if_urlerror(logger_mock, url_open_mock): get_emitter_id.cache_clear() res = MagicMock() url_open_mock.return_value = res res.read.side_effect = URLError("foo") resp = get_emitter_id() assert "ECSTask" == resp logger_mock.warning.assert_called_with("Error when accessing the metadata service: foo")
def test_it_fetches_task_id_from_metadata_uri(url_open_mock): get_emitter_id.cache_clear() res = MagicMock() url_open_mock.return_value = res res.read.return_value = b'{"Labels": {"com.amazonaws.ecs.task-arn": "arn/task-id"}}\n' resp = get_emitter_id() assert "ECSTask_task-id" == resp url_open_mock.assert_called_with("http://metadatauri/path", timeout=1)