[autotest] Simplify _to_kwargs implementation
BUG=None
TEST=Run unittests
Change-Id: I9c5d03b7693d4cfbb9c6213b42ba252c75c595f5
Reviewed-on: https://chromium-review.googlesource.com/419087
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
diff --git a/frontend/afe/rpc_utils_unittest.py b/frontend/afe/rpc_utils_unittest.py
index 83d6f16..5a64f42 100755
--- a/frontend/afe/rpc_utils_unittest.py
+++ b/frontend/afe/rpc_utils_unittest.py
@@ -39,5 +39,53 @@
self.assertFalse(rpc_utils._check_is_server_test('InvalidType'))
+class ConvertToKwargsOnlyTest(unittest.TestCase):
+ """Unit tests for _convert_to_kwargs_only()."""
+
+ # pylint: disable=unused-argument,missing-docstring
+
+ def test_no_kwargs_in_spec(self):
+ """Test with function without kwargs."""
+ def func(a, b):
+ pass
+ got = rpc_utils._convert_to_kwargs_only(func, (1, 2), {})
+ self.assertEquals(got, {'a': 1, 'b': 2})
+
+ def test_pass_by_keyword(self):
+ """Test passing required args by keyword."""
+ def func(a, b):
+ pass
+ got = rpc_utils._convert_to_kwargs_only(func, (), {'a': 1, 'b': 2})
+ self.assertEquals(got, {'a': 1, 'b': 2})
+
+ def test_with_kwargs(self):
+ """Test with custom keyword arg."""
+ def func(a, b, **kwargs):
+ pass
+ got = rpc_utils._convert_to_kwargs_only(func, (1, 2), {'c': 3})
+ self.assertEquals(got, {'a': 1, 'b': 2, 'c': 3})
+
+ def test_with_kwargs_pass_by_keyword(self):
+ """Test passing required parameter by keyword."""
+ def func(a, b, **kwargs):
+ pass
+ got = rpc_utils._convert_to_kwargs_only(func, (1,), {'b': 2, 'c': 3})
+ self.assertEquals(got, {'a': 1, 'b': 2, 'c': 3})
+
+ def test_empty_kwargs(self):
+ """Test without passing kwargs."""
+ def func(a, b, **kwargs):
+ pass
+ got = rpc_utils._convert_to_kwargs_only(func, (1, 2), {})
+ self.assertEquals(got, {'a': 1, 'b': 2})
+
+ def test_with_varargs(self):
+ """Test against vararg function."""
+ def func(a, b, *args):
+ pass
+ got = rpc_utils._convert_to_kwargs_only(func, (1, 2, 3), {})
+ self.assertEquals(got, {'a': 1, 'b': 2, 'args': (3,)})
+
+
if __name__ == '__main__':
unittest.main()