def testPrintFieldValue(self, message_module): message = message_module.TestAllTypes() field = message.DESCRIPTOR.fields_by_name['optional_float'] value = message.optional_float out = text_format.TextWriter(False) text_format.PrintFieldValue(field, value, out) self.assertEqual('0.0', out.getvalue()) out.close() # Test Printer out = text_format.TextWriter(False) printer = text_format._Printer(out) printer.PrintFieldValue(field, value) self.assertEqual('0.0', out.getvalue()) out.close()
def testPrintMessageSetByFieldNumber(self): out = text_format.TextWriter(False) message = unittest_mset_pb2.TestMessageSetContainer() ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension message.message_set.Extensions[ext1].i = 23 message.message_set.Extensions[ext2].str = 'foo' text_format.PrintMessage(message, out, use_field_number=True) self.CompareToGoldenText( out.getvalue(), '1 {\n' ' 1545008 {\n' ' 15: 23\n' ' }\n' ' 1547769 {\n' ' 25: \"foo\"\n' ' }\n' '}\n') out.close()
def pformat_pb(message, max_level=None, as_utf8=False, *args, **kwargs): def _oneline_formatter(message): return text_format.MessageToString(message, *args, **kwargs, as_utf8=as_utf8, as_one_line=True, message_formatter=None) def _monkey_PrintMessage(_dfl_fn, _self, message): if (max_level is not None) and (_self.indent // 2 > max_level): _self.out.write(' ' * _self.indent) _self.out.write(_oneline_formatter(message)) _self.out.write('\n') return return _dfl_fn(message) if max_level == 0: result = _oneline_formatter(message) else: out = text_format.TextWriter(as_utf8) printer = text_format._Printer(out, *args, **kwargs, as_utf8=as_utf8, indent=2) printer.PrintMessage = partial(_monkey_PrintMessage, printer.PrintMessage, printer) printer.PrintMessage(message) result = out.getvalue() out.close() result = '\n' + result return '<Protobuf {{{}}}>'.format(result)