Skip to content

Commit 1efa743

Browse files
authored
fix: pdate ExecProvider to use safe_get() (#48)
1 parent 38ae5f8 commit 1efa743

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

kubernetes_asyncio/config/exec_provider.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ def __init__(self, exec_config):
3939
'exec: malformed request. missing key \'%s\'' % key)
4040
self.api_version = exec_config['apiVersion']
4141
self.args = [exec_config['command']]
42-
if 'args' in exec_config:
42+
if exec_config.safe_get('args'):
4343
self.args.extend(exec_config['args'])
4444
self.env = os.environ.copy()
45-
if 'env' in exec_config:
45+
if exec_config.safe_get('env'):
4646
additional_vars = {}
4747
for item in exec_config['env']:
4848
name = item['name']

kubernetes_asyncio/config/exec_provider_test.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,17 @@
2020

2121
from .config_exception import ConfigException
2222
from .exec_provider import ExecProvider
23+
from .kube_config import ConfigNode
2324

2425

2526
class ExecProviderTest(TestCase):
2627

2728
def setUp(self):
28-
self.input_ok = {
29+
self.input_ok = ConfigNode('test', {
2930
'command': 'aws-iam-authenticator token -i dummy',
30-
'apiVersion': 'client.authentication.k8s.io/v1beta1'
31-
}
31+
'apiVersion': 'client.authentication.k8s.io/v1beta1',
32+
'env': None
33+
})
3234
self.output_ok = """
3335
{
3436
"apiVersion": "client.authentication.k8s.io/v1beta1",
@@ -127,8 +129,12 @@ async def test_ok_01(self):
127129
self.process_mock.wait.assert_awaited_once()
128130

129131
async def test_ok_with_args(self):
130-
self.input_ok['args'] = ['--mock', '90']
131-
ep = ExecProvider(self.input_ok)
132+
input_ok = ConfigNode('test', {
133+
'command': 'aws-iam-authenticator token -i dummy',
134+
'apiVersion': 'client.authentication.k8s.io/v1beta1',
135+
'args': ['--mock', '90']
136+
})
137+
ep = ExecProvider(input_ok)
132138
result = await ep.run()
133139
self.assertTrue(isinstance(result, dict))
134140
self.assertTrue('token' in result)
@@ -140,10 +146,13 @@ async def test_ok_with_args(self):
140146

141147
async def test_ok_with_env(self):
142148

143-
self.input_ok['env'] = [{'name': 'EXEC_PROVIDER_ENV_NAME',
144-
'value': 'EXEC_PROVIDER_ENV_VALUE'}]
149+
input_ok = ConfigNode('test', {
150+
'command': 'aws-iam-authenticator token -i dummy',
151+
'apiVersion': 'client.authentication.k8s.io/v1beta1',
152+
'env': [{'name': 'EXEC_PROVIDER_ENV_NAME',
153+
'value': 'EXEC_PROVIDER_ENV_VALUE'}]})
145154

146-
ep = ExecProvider(self.input_ok)
155+
ep = ExecProvider(input_ok)
147156
result = await ep.run()
148157
self.assertTrue(isinstance(result, dict))
149158
self.assertTrue('token' in result)

0 commit comments

Comments
 (0)