parent
debffba85b
commit
14a24abbde
2 changed files with 99 additions and 2 deletions
|
|
@ -2016,7 +2016,8 @@ class VirtualMethod(object):
|
|||
|
||||
|
||||
def grab_session_options(options):
|
||||
'''Convert optparse options to a dict that ClientSession can handle'''
|
||||
"""Convert optparse options to a dict that ClientSession can handle;
|
||||
If options is already a dict, filter out meaningless and None value items"""
|
||||
s_opts = (
|
||||
'user',
|
||||
'password',
|
||||
|
|
@ -2037,8 +2038,10 @@ def grab_session_options(options):
|
|||
'use_old_ssl',
|
||||
'no_ssl_verify',
|
||||
'serverca',
|
||||
)
|
||||
)
|
||||
# cert is omitted for now
|
||||
if isinstance(options, dict):
|
||||
return {k: v for k, v in six.iteritems(options) if k in s_opts and v is not None}
|
||||
ret = {}
|
||||
for key in s_opts:
|
||||
if not hasattr(options, key):
|
||||
|
|
|
|||
94
tests/test_lib/test_grab_session_options.py
Normal file
94
tests/test_lib/test_grab_session_options.py
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
from __future__ import absolute_import
|
||||
import unittest
|
||||
import optparse
|
||||
|
||||
import koji
|
||||
|
||||
NORMAL_VAL = {'user': 'jdoe',
|
||||
'password': 'fakepwd',
|
||||
'krbservice': 'fakekrbservice',
|
||||
'debug_xmlrpc': True,
|
||||
'debug': False,
|
||||
'max_retries': 3,
|
||||
'retry_interval': 10,
|
||||
'offline_retry': True,
|
||||
'offline_retry_interval': 300,
|
||||
'anon_retry': True,
|
||||
'keepalive': False,
|
||||
'timeout': 30000,
|
||||
'use_fast_upload': False,
|
||||
'upload_blocksize': 1024,
|
||||
'krb_rdns': 'fakerdns',
|
||||
'krb_canon_host': 'fakehost',
|
||||
'use_old_ssl': False,
|
||||
'no_ssl_verify': True,
|
||||
'serverca': '/fake/serverca.cert',
|
||||
}
|
||||
|
||||
EMPTY_VAL = {}
|
||||
|
||||
NONE_VAL = {'user': None,
|
||||
'password': None,
|
||||
'krbservice': None,
|
||||
'debug_xmlrpc': None,
|
||||
'debug': None,
|
||||
'max_retries': None,
|
||||
'retry_interval': None,
|
||||
'offline_retry': None,
|
||||
'offline_retry_interval': None,
|
||||
'anon_retry': None,
|
||||
'keepalive': None,
|
||||
'timeout': None,
|
||||
'use_fast_upload': None,
|
||||
'upload_blocksize': None,
|
||||
'krb_rdns': None,
|
||||
'krb_canon_host': None,
|
||||
'use_old_ssl': None,
|
||||
'no_ssl_verify': None,
|
||||
'serverca': None,
|
||||
}
|
||||
|
||||
MEANINGLESS_VAL = {'somekey': 'somevalue'}
|
||||
|
||||
MIXED_VAL = {'user': None,
|
||||
'password': None,
|
||||
'anon_retry': 3,
|
||||
'keepalive': True,
|
||||
'timeout': 100,
|
||||
'krb_rdns': 'fakerdns',
|
||||
'meaningless': 'wow',
|
||||
'nonval': None}
|
||||
|
||||
MIXED_REL = {'anon_retry': 3,
|
||||
'keepalive': True,
|
||||
'timeout': 100,
|
||||
'krb_rdns': 'fakerdns',
|
||||
}
|
||||
|
||||
|
||||
class TestGrabSessionOptions(unittest.TestCase):
|
||||
"""TestCase for grab_session_options"""
|
||||
|
||||
def test_optparse_value(self):
|
||||
rel = koji.grab_session_options(optparse.Values(NORMAL_VAL))
|
||||
self.assertEqual(rel, NORMAL_VAL)
|
||||
rel = koji.grab_session_options(optparse.Values(EMPTY_VAL))
|
||||
self.assertEqual(rel, EMPTY_VAL)
|
||||
rel = koji.grab_session_options(optparse.Values(NONE_VAL))
|
||||
self.assertEqual(rel, {})
|
||||
rel = koji.grab_session_options(optparse.Values(MEANINGLESS_VAL))
|
||||
self.assertEqual(rel, {})
|
||||
rel = koji.grab_session_options(optparse.Values(MIXED_VAL))
|
||||
self.assertEqual(rel, MIXED_REL)
|
||||
|
||||
def test_dict(self):
|
||||
rel = koji.grab_session_options(NORMAL_VAL)
|
||||
self.assertEqual(rel, NORMAL_VAL)
|
||||
rel = koji.grab_session_options(EMPTY_VAL)
|
||||
self.assertEqual(rel, EMPTY_VAL)
|
||||
rel = koji.grab_session_options(NONE_VAL)
|
||||
self.assertEqual(rel, {})
|
||||
rel = koji.grab_session_options(MEANINGLESS_VAL)
|
||||
self.assertEqual(rel, {})
|
||||
rel = koji.grab_session_options(MIXED_VAL)
|
||||
self.assertEqual(rel, MIXED_REL)
|
||||
Loading…
Add table
Add a link
Reference in a new issue