From add163a0923faffd41096cc305bbac76619112a6 Mon Sep 17 00:00:00 2001 From: Jack Date: Thu, 15 Sep 2016 22:20:00 -0400 Subject: [PATCH] move get_params to own function, add some tests --- lbrynet/lbrynet_daemon/LBRYDaemonCLI.py | 26 +++++++++-------- .../unit/lbrynet_daemon/test_LBRYDaemonCLI.py | 28 +++++++++++++++++++ 2 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 tests/unit/lbrynet_daemon/test_LBRYDaemonCLI.py diff --git a/lbrynet/lbrynet_daemon/LBRYDaemonCLI.py b/lbrynet/lbrynet_daemon/LBRYDaemonCLI.py index b0dfa1981..ea4f2234d 100644 --- a/lbrynet/lbrynet_daemon/LBRYDaemonCLI.py +++ b/lbrynet/lbrynet_daemon/LBRYDaemonCLI.py @@ -25,6 +25,16 @@ def guess_type(x): except ValueError: return x + +def get_params_from_kwargs(params): + params_for_return = {} + for i in params: + eq_pos = i.index('=') + k, v = i[:eq_pos], i[eq_pos+1:] + params_for_return[k] = guess_type(v) + return params_for_return + + def main(): api = JSONRPCProxy.from_url(API_CONNECTION_STRING) @@ -35,27 +45,21 @@ def main(): sys.exit(1) parser = argparse.ArgumentParser() - parser.add_argument('method', nargs=1, type=str) + parser.add_argument('method', nargs=1) parser.add_argument('params', nargs=argparse.REMAINDER, default=None) args = parser.parse_args() + meth = args.method[0] params = {} + if args.params: if len(args.params) > 1: - for i in args.params: - k, v = i.split('=')[0], i.split('=')[1:] - if isinstance(v, list): - v = ''.join(v) - params[k] = guess_type(v) + params = get_params_from_kwargs(args.params) elif len(args.params) == 1: try: params = json.loads(args.params[0]) except ValueError: - for i in args.params: - k, v = i.split('=')[0], i.split('=')[1:] - if isinstance(v, list): - v = ''.join(v) - params[k] = guess_type(v) + params = get_params_from_kwargs(args.params) msg = help_msg for f in api.help(): diff --git a/tests/unit/lbrynet_daemon/test_LBRYDaemonCLI.py b/tests/unit/lbrynet_daemon/test_LBRYDaemonCLI.py new file mode 100644 index 000000000..11c7db992 --- /dev/null +++ b/tests/unit/lbrynet_daemon/test_LBRYDaemonCLI.py @@ -0,0 +1,28 @@ +from twisted.trial import unittest +from lbrynet.lbrynet_daemon import LBRYDaemonCLI + + +class LBRYDaemonCLITests(unittest.TestCase): + def test_guess_type(self): + self.assertEqual('0.3.8', LBRYDaemonCLI.guess_type('0.3.8')) + self.assertEqual(0.3, LBRYDaemonCLI.guess_type('0.3')) + self.assertEqual(3, LBRYDaemonCLI.guess_type('3')) + self.assertEqual('VdNmakxFORPSyfCprAD/eDDPk5TY9QYtSA==', LBRYDaemonCLI.guess_type('VdNmakxFORPSyfCprAD/eDDPk5TY9QYtSA==')) + self.assertEqual(0.3, LBRYDaemonCLI.guess_type('0.3')) + + def test_get_params(self): + test_params = [ + 'b64address=VdNmakxFORPSyfCprAD/eDDPk5TY9QYtSA==', + 'name=test', + 'amount=5.3', + 'n=5', + 'address=bY13xeAjLrsjP4KGETwStK2a9UgKgXVTXu' + ] + test_r = { + 'b64address': 'VdNmakxFORPSyfCprAD/eDDPk5TY9QYtSA==', + 'name': 'test', + 'amount': 5.3, + 'n': 5, + 'address': 'bY13xeAjLrsjP4KGETwStK2a9UgKgXVTXu' + } + self.assertDictEqual(test_r, LBRYDaemonCLI.get_params_from_kwargs(test_params))