예제 #1
0
 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')
예제 #2
0
  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)