From a81ab2f02229fa984b3f268ee5420dec8cb5c77e Mon Sep 17 00:00:00 2001 From: Tomasz Prus Date: Sat, 22 Sep 2018 23:38:28 +0200 Subject: [PATCH] fix: read config data with bytes (python3) --- kubernetes_asyncio/config/kube_config.py | 6 +++++- kubernetes_asyncio/config/kube_config_test.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/kubernetes_asyncio/config/kube_config.py b/kubernetes_asyncio/config/kube_config.py index b63025d53..27cdc3364 100644 --- a/kubernetes_asyncio/config/kube_config.py +++ b/kubernetes_asyncio/config/kube_config.py @@ -95,8 +95,12 @@ def as_file(self): use_data_if_no_file = not self._file and self._data if use_data_if_no_file: if self._base64_file_content: + if isinstance(self._data, str): + content = self._data.encode() + else: + content = self._data self._file = _create_temp_file_with_content( - base64.decodestring(self._data.encode())) + base64.decodestring(content)) else: self._file = _create_temp_file_with_content(self._data) if self._file and not os.path.isfile(self._file): diff --git a/kubernetes_asyncio/config/kube_config_test.py b/kubernetes_asyncio/config/kube_config_test.py index 1acf66209..b9a7d0af2 100644 --- a/kubernetes_asyncio/config/kube_config_test.py +++ b/kubernetes_asyncio/config/kube_config_test.py @@ -197,6 +197,18 @@ def test_create_temp_file_with_content(self): _create_temp_file_with_content(TEST_DATA))) _cleanup_temp_files() + def test_file_given_data_bytes(self): + obj = {TEST_DATA_KEY: TEST_DATA_BASE64.encode()} + t = FileOrData(obj=obj, file_key_name=TEST_FILE_KEY, + data_key_name=TEST_DATA_KEY) + self.assertEqual(TEST_DATA, self.get_file_content(t.as_file())) + + def test_file_given_data_bytes_no_base64(self): + obj = {TEST_DATA_KEY: TEST_DATA.encode()} + t = FileOrData(obj=obj, file_key_name=TEST_FILE_KEY, + data_key_name=TEST_DATA_KEY, base64_file_content=False) + self.assertEqual(TEST_DATA, self.get_file_content(t.as_file())) + class TestConfigNode(BaseTestCase):