From a3faf080e355d2d89cb7a93a92f76ea5462c2ad0 Mon Sep 17 00:00:00 2001 From: Josh Haberman Date: Wed, 2 Dec 2015 13:21:42 -0800 Subject: Added JSON support to Python conformance tests. --- conformance/conformance_python.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'conformance/conformance_python.py') diff --git a/conformance/conformance_python.py b/conformance/conformance_python.py index af3dc8ec..32aa2255 100755 --- a/conformance/conformance_python.py +++ b/conformance/conformance_python.py @@ -39,6 +39,7 @@ import struct import sys import os from google.protobuf import message +from google.protobuf import json_format import conformance_pb2 sys.stdout = os.fdopen(sys.stdout.fileno(), 'wb', 0) @@ -61,8 +62,11 @@ def do_test(request): return response elif request.WhichOneof('payload') == 'json_payload': - response.skipped = "JSON not supported yet." - return response + try: + json_format.Parse(request.json_payload, test_message) + except json_format.ParseError as e: + response.parse_error = str(e) + return response else: raise "Request didn't have payload." @@ -74,7 +78,8 @@ def do_test(request): response.protobuf_payload = test_message.SerializeToString() elif request.requested_output_format == conformance_pb2.JSON: - response.skipped = "JSON not supported yet." + response.json_payload = json_format.MessageToJson(test_message) + except Exception as e: response.runtime_error = str(e) -- cgit v1.2.3