From 8668f9c1a4eb51169aa921ad02c1a68606934826 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Mon, 7 Jul 2014 15:02:10 +0200 Subject: [PATCH] Added missing jsonutils.dump() function The function is missing from the module, meaning that some module consumers can't use jsonutils as a complete replacement for stdlib json module. Change-Id: Ia678d251a3984c959ae6c9d7ad70d33b197da4ff Closes-Bug: 1338571 --- openstack/common/jsonutils.py | 4 ++++ tests/unit/test_jsonutils.py | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/openstack/common/jsonutils.py b/openstack/common/jsonutils.py index e4eada8..8112141 100644 --- a/openstack/common/jsonutils.py +++ b/openstack/common/jsonutils.py @@ -168,6 +168,10 @@ def dumps(value, default=to_primitive, **kwargs): return json.dumps(value, default=default, **kwargs) +def dump(obj, fp, *args, **kwargs): + return json.dump(obj, fp, *args, **kwargs) + + def loads(s, encoding='utf-8', **kwargs): return json.loads(strutils.safe_decode(s, encoding), **kwargs) diff --git a/tests/unit/test_jsonutils.py b/tests/unit/test_jsonutils.py index 3105a69..cb9123d 100644 --- a/tests/unit/test_jsonutils.py +++ b/tests/unit/test_jsonutils.py @@ -44,6 +44,15 @@ class JSONUtilsTestMixin(object): def test_dumps(self): self.assertEqual('{"a": "b"}', jsonutils.dumps({'a': 'b'})) + def test_dump(self): + expected = '{"a": "b"}' + json_dict = {'a': 'b'} + + fp = six.StringIO() + jsonutils.dump(json_dict, fp) + + self.assertEqual(expected, fp.getvalue()) + def test_loads(self): self.assertEqual({'a': 'b'}, jsonutils.loads('{"a": "b"}'))