def testValueMessage(self): message = json_format_proto3_pb2.TestValue() message.value.string_value = 'hello' message.repeated_value.add().number_value = 11.1 message.repeated_value.add().bool_value = False message.repeated_value.add().null_value = 0 self.assertEqual( json.loads(json_format.MessageToJson(message, False)), json.loads( '{' ' "value": "hello",' ' "repeatedValue": [11.1, false, null]' '}')) parsed_message = json_format_proto3_pb2.TestValue() self.CheckParseBack(message, parsed_message) # Can't parse back if the Value message is not set. message.repeated_value.add() self.assertEqual( json.loads(json_format.MessageToJson(message, False)), json.loads( '{' ' "value": "hello",' ' "repeatedValue": [11.1, false, null, null]' '}')) message.Clear() json_format.Parse('{"value": null}', message) self.assertEqual(message.value.WhichOneof('kind'), 'null_value')
def testParseDictUnknownValueType(self): class UnknownClass(object): def __str__(self): return 'v' message = json_format_proto3_pb2.TestValue() self.assertRaisesRegexp( json_format.ParseError, r"Value v has unexpected type <class '.*\.UnknownClass'>.", json_format.ParseDict, {'value': UnknownClass()}, message)