Duac@s)dZdZddlZddlZddlZddlZyddlZWnek rkddlZnXddl m Z ddl m Z ddl m Z ddl mZddl mZdd l mZdd l mZddl m Zdd l mZdd l mZdd l mZddl mZdejfdYZdejfdYZe jeedefdYZdefdYZdefdYZdejfdYZdejfdYZe jeedefdYZ e!dkr%ej"ndS( s%Test for google.protobuf.text_format.s kenton@google.com (Kenton Varda)iN(t_parameterized(t any_test_pb2(tmap_unittest_pb2(tunittest_mset_pb2(t unittest_pb2(tunittest_proto3_arena_pb2(tapi_implementation(tmessage_set_extensions_pb2(t test_util(tdescriptor_pool(t text_formattSimpleTextFormatTestscBseZdZRS(cCs.x'tjD]}|jdt|q WdS(Ni(R t_QUOTESt assertEqualtlen(tselftquote((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestQuoteMarksAreSingleCharsFs(t__name__t __module__R(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR @stTextFormatBasecBs,eZdZdZdZdZRS(cCsRtj|=}ttkr(|jSg|D]}|jd^q/SWdQXdS(Nsutf-8(Rt GoldenFiletstrtbytest readlinestdecode(Rtgolden_filenametft golden_line((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt ReadGoldenNscCs,|j|}|j|dj|dS(Nt(RtassertMultiLineEqualtjoin(RttextRt golden_lines((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pytCompareToGoldenFileSscCs|j||dS(N(R (RR!t golden_text((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pytCompareToGoldenTextWscCs[|jddjddjddjdd}tjdtjjd|}|S(Nse+0se+se-0se-s\.0$R(treplacetretcompilet MULTILINEtsub(RR!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pytRemoveRedundantZerosZs!(RRRR#R%R+(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRLs   tTextFormatTestcBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZRS(cCs|j}|jjd|jjd|jjd|jjd|jjd|jjd|jjd|j|jtj |ddS( Nllgw/^@gtQFքDg‚6(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt#testParseRepeatedMessageShortFormat}s cCs<|j}d}tj|||j|j|dS(NR(R-R RKR (RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseEmptyTexts cCss|j}d}|jtj}tj||WdQX|j|jjd|j|jjddS(Nsrepeated_string: "\xc3\xc3"ii( R-t assertRaisesR t ParseErrorRKR t exceptiontGetLinet GetColumn(RR4R5R!te((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseInvalidUtf8s  cCs8|j}d}tj|tjdtj||dS(Ntfoos?1:1 : Message type "\w+.TestAllTypes" has no field named "foo".(R-R8tassertRaisesRegexR R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseSingleWords  cCs8|j}d}tj|tjdtj||dS(Nsunknown_field: 8 sI1:1 : Message type "\w+.TestAllTypes" has no field named "unknown_field".(R-R8RR R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseUnknownFields  cCs8|j}d}tj|tjdtj||dS(Nsoptional_nested_enum: BARRsG1:23 : Enum type "\w+.TestAllTypes.NestedEnum" has no value named BARR.(R-R8RR R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadEnumValues  cCs8|j}d}tj|tjdtj||dS(Nsoptional_int32: borks#1:17 : Couldn't parse integer: bork(R-R8RR R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadIntValues  cCs|j}d}tj||d}|jd|jd|j|d|d|jd|j|d|d |jd |j||d||d|jd |j||d||d |jd |j|d |jddS(Nsrepeated_string: "\xf\x62" repeated_string: "\\xf\\x62" repeated_string: "\\\xf\\\x62" repeated_string: "\\\\xf\\\\x62" repeated_string: "\\\\\xf\\\\\x62" repeated_string: "\x5cx20"s\sbitxftx62istbiiitx20i(R-R RKR R2(RR4R5R!tSLASH((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseStringFieldUnescapes ##cCsK|j}d}tj||}|j|||jd|jdS(Ns%optional_int32: 42 optional_int32: 67iC(R-R RsRLR toptional_int32(RR4R5R!RO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeDuplicateScalarss  cCsQ|j}d}tj||}|j||k|jd|jjdS(NsCoptional_nested_message { bb: 1 } optional_nested_message { bb: 2 }i(R-R Rst assertTrueR toptional_nested_messageR>(RR4R5R!RO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt&testMergeDuplicateNestedMessageScalarss  cCsW|j}d|_|j}tjtj|||jd|jddS(Ni t oneof_uint32t oneof_field(R-RR RKR3R t WhichOneof(RR4tmtm2((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseOneofs    cCsNdjddg}|j}tj|||jd|jddS(Ns soneof_uint32: 11soneof_string: "foo"t oneof_stringR(R R-R RsR R(RR4tm_stringR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeMultipleOneofs cCsQdjddg}|j}|jtjdtj||WdQXdS(Ns soneof_uint32: 11soneof_string: "foo"s is specified along with field (R R-tassertRaisesRegexpR R~RK(RR4RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMultipleOneofs    ( RRR6R:RARERGRHRPRQR[R^RjRlRpRvRxRyRzR{R|RRRRRRRRRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR,es<      !                 t OnlyWorksWithProto2RightNowTestscBsPeZdZdZdZdZdZdZdZdZ RS(cCsEtj}tj||j|jtj|dtddS(Ntpointy_bracketss*text_format_unittest_data_pointy_oneof.txt( RR-RRmR#R+R R3R?(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllFieldsPointys    cCssdj|jd}tj}tj||}|j||tj}tj||j ||dS(Ns s/text_format_unittest_data_oneof_implemented.txt( R RRR-R RKRLRRmR (RR$RNROR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseGoldens     cCs?tj}tj||j|jtj|ddS(Ns/text_format_unittest_data_oneof_implemented.txt(RR-RRmR#R+R R3(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllFieldss   cCstj}d|_d|_d|_d|j_d|j_|j|j t j |dt d|j|j t j |ddS( Nt115ieioiituse_index_ordersWmy_string: "115" my_int: 101 my_float: 111 optional_nested_message { oo: 0 bb: 1 } sWmy_int: 101 my_string: "115" my_float: 111 optional_nested_message { bb: 1 oo: 0 } ( RtTestFieldOrderingst my_stringtmy_inttmy_floatRtooR>R%R+R R3R?(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintInIndexOrder s       cCsj|jd}tj}tj||}|j||tj}tj||j||dS(Ns/text_format_unittest_data_oneof_implemented.txt( RRR-R t MergeLinesRLRRmR (RtopenedRNROR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeLinesGoldens   cCsj|jd}tj}tj||}|j||tj}tj||j||dS(Ns/text_format_unittest_data_oneof_implemented.txt( RRR-R t ParseLinesRLRRmR (RRRNROR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseLinesGolden's   cCsztj}d|jd_s( RRtstringtascii_uppercaseRtreversedR R%R R3(RR5Rtgolden((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMapOrderEnforcementYs  ( RRRRRRRRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRs    (t Proto2TestscBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZRS(cCstj}tjj}tjj}d|jj|_d|jj|_|j t j |dt j }t j}d|j|_|j t j |ddS(NiRsmessage_set { [protobuf_unittest.TestMessageSetExtension1] { i: 23 } [protobuf_unittest.TestMessageSetExtension2] { str: "foo" } } tbarsF[google.protobuf.internal.TestMessageSetExtension3] { text: "bar" } (RtTestMessageSetContainertTestMessageSetExtension1tmessage_set_extensiontTestMessageSetExtension2t message_sett ExtensionstiRR%R R3RtTestMessageSettmessage_set_extension3R!(RR5text1text2text((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMessageSetvs      cCstjt}tj}tjj}tjj}d|jj |_ d|jj |_ tj ||dt |j|jd|jdS(NiRtuse_field_numbers?1 { 1545008 { 15: 23 } 1547769 { 25: "foo" } } (R RaRJRRRRRRRRRt PrintMessageR?R%RcRd(RRhR5RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt testPrintMessageSetByFieldNumbers   cCsmtj}tjj}tjj}d|jj|_d|jj|_|j t j |dt ddS(NiRR;smessage_set { [protobuf_unittest.TestMessageSetExtension1] { i: 23 } [protobuf_unittest.TestMessageSetExtension2] { str: "foo" } }( RRRRRRRRRR%R R3R?(RR5RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMessageSetAsOneLines   cCstj}d}tj|||jd|jd|jd|jdtj}d}tj||tjj }tj j }|jd|j j |j |jd|j j |jdS(Ns&repeated_uint64: 1 repeated_uint64: 2 iiismessage_set { [protobuf_unittest.TestMessageSetExtension1] { i: 23 } [protobuf_unittest.TestMessageSetExtension2] { str: "foo" } } iR(RR-R RKR R0RRRRRRRRR(RR5R!RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMessageSets    cCsWtj}d}tj||dtj|jtj|dtj|dS(Nsvalue { [type.googleapis.com/google.protobuf.internal.TestAny] { [google.protobuf.internal.TestAnyExtension1.extension1] { i: 10 } } } R (ttest_extend_anytTestAnyR RsR tDefaultR%R3(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestExtensionInsideAnyMessages c Cs6tj}d}tj||dt|jd|jd|jd|jdtj}d}tj||dttj j }tj j }|jd|j j |j|jd|j j |jtj}d }tj|tjd tj||d }tj|tjd tj||dtdS( Ns34: 1 repeated_uint64: 2 tallow_field_numberiiis?1 { 1545008 { 15: 23 } 1547769 { 25: "foo" } } iRs34:1 s>1:1 : Message type "\w+.TestAllTypes" has no field named "34".s1234:1 s@1:1 : Message type "\w+.TestAllTypes" has no field named "1234".(RR-R RKR?R R0RRRRRRRRRR8RR~(RR5R!RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMessageByFieldNumbers4     cCs?tj}tj||j|jtj|ddS(Ns(text_format_unittest_extensions_data.txt(RtTestAllExtensionsRtSetAllExtensionsR#R+R R3(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllExtensionss   cCsEtj}tj||j|jtj|dtddS(NRs/text_format_unittest_extensions_data_pointy.txt( RRRRR#R+R R3R?(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllExtensionsPointys    cCsadj|jd}tj}tj||tj}tj||j||dS(Ns s(text_format_unittest_extensions_data.txt( R RRRR RKRRR (RR$RNR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseGoldenExtensionss     cCsXtj}tj|tj|}tj}tj|||j||dS(N(RRRRR R3RKR (RR5RoRN((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseAllExtensionss    c Cstj}d}tj||dtd}|jtj||tj}d}tj|tj dtj||dttj}d}tj|tj dtj||dttj}d}tj|tj dtj||dttj}d }tj|tj d tj||dttj}d }tj|tj d tj||dttj}d }tj||dttj j }tj j }|j d|jj|j|j d|jj|jdS(Nsmessage_set { [unknown_extension] { i: 23 bin: "" [nested_unknown_ext]: { i: 23 x: x test: "test_string" floaty_float: -0.315 num: -inf multiline_str: "abc" "def" "xyz." [nested_unknown_ext.ext]: < i: 23 i: 24 pointfloat: .3 test: "test_string" floaty_float: -0.315 num: -inf long_string: "test" "test2" > } } [unknown_extension]: 5 } tallow_unknown_extensionsmessage_set { } s3message_set { [unknown_extension] { i: } } sInvalid field value: }sGmessage_set { [unknown_extension] { str: "malformed string } } sInvalid field value: "sSmessage_set { [unknown_extension] { str: "malformed multiline string } } s7message_set { [malformed_extension] < i: -5 } s5:1 : Expected ">".s)message_set { unknown_field: true } sb2:3 : Message type "proto2_wireformat_unittest.TestMessageSet" has no field named "unknown_field".smessage_set { [protobuf_unittest.TestMessageSetExtension1] { i: 23 } [protobuf_unittest.TestMessageSetExtension2] { str: "foo" } } iR(RRR RKR?R%R3R8RR~RRRR RRRR(RR5R!Rt malformedRR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt testParseAllowedUnknownExtension"sr              cCsZtj}d}|jtj}tj||WdQX|jt|jddS(Ns#optional_nested_message { "bb": 1 }s/1:27 : Expected identifier or number, got "bb".( RR-R}R R~RKR RR(RR5R!R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadIdentifiers  cCsftj}d}tj|tjdtj||tj}tj|tjdtj||dS(Ns[unknown_extension]: 8 s31:2 : Extension "unknown_extension" not registered.sM1:2 : Message type "protobuf_unittest.TestAllTypes" does not have extensions.(RRR8RR R~RKR-(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadExtensions  cCs8tj}d}tj|tjdtj||dS(Nsoptional_nested_enum: 100sL1:23 : Enum type "\w+.TestAllTypes.NestedEnum" has no value with number 100.(RR-R8RR R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseNumericUnknownEnums  cCs@tj}d}tj|||jd|jtjdS(Nsa[protobuf_unittest.optional_int32_extension]: 42 [protobuf_unittest.optional_int32_extension]: 67iC(RRR RsR Rtoptional_int32_extension(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testMergeDuplicateExtensionScalarss   cCs8tj}d}tj|tjdtj||dS(Nsa[protobuf_unittest.optional_int32_extension]: 42 [protobuf_unittest.optional_int32_extension]: 67s1:96 : Message type "protobuf_unittest.TestAllExtensions" should not have multiple "protobuf_unittest.optional_int32_extension" extensions.(RRR8RR R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testParseDuplicateExtensionScalarss  cCs8tj}d}tj|tjdtj||dS(NsCoptional_nested_message { bb: 1 } optional_nested_message { bb: 2 }sh1:65 : Message type "protobuf_unittest.TestAllTypes.NestedMessage" should not have multiple "bb" fields.(RR-R8RR R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt&testParseDuplicateNestedMessageScalarss   cCs8tj}d}tj|tjdtj||dS(Ns%optional_int32: 42 optional_int32: 67sf1:36 : Message type "protobuf_unittest.TestAllTypes" should not have multiple "optional_int32" fields.(RR-R8RR R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseDuplicateScalarss   cCs`tj}d}tj|tjdtj||d}tj|tjdtj||dS(NsRepeatedGroup: ".sRepeatedGroup: {s1:16 : Expected "}".(RR-R8RR R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseGroupNotCloseds cCs~tj}d}tj|||j|jd|jtj}d}tj|||j|jddS(NsOptionalGroup: {}t optionalgroupsOptionalGroup: <>(RR-R RKRtHasFieldRr(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseEmptyGroups   cCsd}tj}tj|||jd|jd|jd|jd|jd|jd|jd|jd|jd |j d |jd |j d j dS(NsHmap_int32_int32 { key: -123 value: -456 } map_int64_int64 { key: -8589934592 value: -17179869184 } map_uint32_uint32 { key: 123 value: 456 } map_uint64_uint64 { key: 8589934592 value: 17179869184 } map_string_string { key: "abc" value: "123" } map_int32_foreign_message { key: 111 value { c: 5 } } i8iii"i!ii{RRiiollllll( RRR RKR RRRRRRR](RR!R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt testParseMaps (RRRRRRRRRRRRRRRRRRRRRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRts*      )   z     t Proto3TestscBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZRS(cCsZtj}d|_tj}|jj||jtj |dt j ddS(NRR s[any_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string" } } ( Rt OneStringtdataRRt any_valuetPackR R R3R R(Rtpacked_messageR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMessageExpandAnys     cCsstj}tj}d|_|jjj|d|_|jjj||jt j |ddS(Ntstring0tstring1srepeated_any_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string0" } } repeated_any_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string1" } } ( RRRRRtrepeated_any_valueR=RR R R3(RRR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt!testPrintMessageExpandAnyRepeated(s     cCs`tj}d|_tj}|jj|tj}|j t j |d|ddS(NRR sdany_value { type_url: "type.googleapis.com/protobuf_unittest.OneString" value: "\n\006string" } ( RRRRRRRR tDescriptorPoolR R R3(RRR5t empty_pool((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt2testPrintMessageExpandAnyDescriptorPoolMissingType<s    cCsTtj}d|_tj}|jj||jtj |dt ddS(NRRs[any_value < [type.googleapis.com/protobuf_unittest.OneString] < data: "string" > > ( RRRRRRRR R R3R?(RRR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt'testPrintMessageExpandAnyPointyBracketsIs    cCsTtj}d|_tj}|jj||jtj |dt ddS(NRR;sRany_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string" } }( RRRRRRRR R R3R?(RRR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testPrintMessageExpandAnyAsOneLineWs    c Csftj}d|_tj}|jj||jtj |dt dt dt j ddS(NRR;RR sRany_value < [type.googleapis.com/protobuf_unittest.OneString] < data: "string" > >( RRRRRRRR R R3R?R R(RRR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt0testPrintMessageExpandAnyAsOneLinePointyBracketsds     cCsWtj}tj}d|_tj|}tj|||jd|jdS(Ni(RR-toptional_nested_enumR R3RKR (RR5tmessage2t text_string((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestUnknownEnumsss    cCstj}d}tj||tj}|jj||jd|j |j tj ||tj}|jj||jd|j dS(Ns[any_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string" } } R( RRR RsRRRtUnpackR RRrRK(RR5R!R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeExpandedAny{s    cCstj}d}tj||tj}|jdj||jd|j |jdj||jd|j dS(Nsrepeated_any_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string0" } } repeated_any_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string1" } } iRiR( RRR RsRRRR R R(RR5R!R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeExpandedAnyRepeateds   cCsUtj}d}tj||tj}|jj||jd|j dS(Ns[any_value { [type.googleapis.com/protobuf_unittest.OneString] < data: "string" > } R( RRR RsRRRR R R(RR5R!R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testMergeExpandedAnyPointyBracketss   cCsHtj}d}tj||tj}|jd|jjdS(NsYany_value { [type.otherapi.com/protobuf_unittest.OneString] { data: "string" } } s-type.otherapi.com/protobuf_unittest.OneString( RRR RsRRR Rttype_url(RR5R!R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeAlternativeUrls    c Csltj}d}|jtj)}tj}tj||d|WdQX|jt |j ddS(Ns[any_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string" } } R s=Type protobuf_unittest.OneString not found in descriptor pool( RRR}R R~R RRsR RR(RR5R!RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt-testMergeExpandedAnyDescriptorPoolMissingTypes   cCsUd}tj}tj||tj}|jj||jd|j dS(Nsdany_value { type_url: "type.googleapis.com/protobuf_unittest.OneString" value: "\n\006string" } R( RRR RsRRRR R R(RR!R5R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeUnexpandedAnys   cCsZtj}d}|jtj}tj||WdQX|jt|jddS(NsUany_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string" s3:11 : Expected "}".( RRR}R R~RsR RR(RR5R!R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeMissingAnyEndTokens  (RRRRRRRRRR R R RRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRs         t TokenizerTestcBs}eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d ZRS( cTCsd}tj|j}|jdfd|jdf|jdfd|jdf|jdfd|jdf|jd fd|jd f|jd fd|jd f|jd fd|jdf|jdfd|jdf|jdfdd|jdfd|jtdf|jdfd|jtd f|jdfd|jt f|jdfd|jt fd|jdfd|jdf|jdfd|jdf|jdfd|jdf|jdfd|jd f|jd!fd|jd"f|jd#fd|jd$f|jd%fd|jt f|jd&fd|jt f|jd'fd|jt f|jd(fd|jt f|jd)fd|jt f|jd*fd|jt f|jd+fd|jtdf|jd,fd|jtd-f|jd.fd|jtd/fgR}d0}x|j s||}t |t rg|j}|j|||jnat |d1trtj|d1r|jtj|d0n|j|d1|d0|d17}qWdS(2Nsidentifier1:"string1" identifier2 : 123 identifier3 :'string' identifiER_4 : 1.1e+2 ID5:-0.23 ID6:'aaaa\'bbbb' ID7 : "aa\"bb" ID8: {A:inf B:-inf C:true D:false} ID9: 22 ID10: -111111111111111111 ID11: -22 ID12: 2222222222222222222 ID13: 1.23456f ID14: 1.2e+2f false_bool: 0 true_BOOL:t true_bool1: 1 false_BOOL1:f False_bool: False True_bool: True X:iNf Y:-inF Z:nANt identifier1t:Rt identifier2i{t identifier3Rt identifiER_4g[@tID5gq= ףpͿtID6s aaaa'bbbbtID7saa"bbtID8t{tAtinftBtCtDt}tID9itID10lq{U tID11itID12lc/Y-vtID13g82?tID14g^@t false_boolt true_BOOLt true_bool1t false_BOOL1t False_boolt True_booltXtYs-inftZtnanii(R t Tokenizert splitlinestConsumeIdentifiert ConsumeStringtConsumeIntegert ConsumeFloattfloatt ConsumeBoolR?RJtAtEndt isinstanceRttokenR t NextTokentmathtisnanR(RR!t tokenizertmethodsRRR=((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestSimpleTokenCasess                       & cCsYd }d }d|d|df}tj|j}|jd|j|j|d|j|j|d|j|j|jd}tj|j}|jd|j|jd|j|jt|j|jt |j|j tj |jWdQX|jd|j |j|jdS( Nii?i s-1 %d %dis -0 0 0 1.2ig333333?llll( R R3R4R R7RR;R?tTryConsumeIntegerRJR}R~R8(Rt int64_maxt uint32_maxR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeAbstractIntegers)s$cCsd }d }d|d|df}tj|j}|jtjtj||jtjtj||jdtj||jtjtj||jtjtj||j|dtj ||jtjtj ||j|dtj||j |j d}tj|j}|jdtj||jdtj||jdtj||jdtj||j |j dS( Nii?i s-1 %d %dis -0 -0 0 0illll( R R3R4R}R~t_ConsumeUint32t_ConsumeUint64R t _ConsumeInt32t _ConsumeInt64RR;(RRERFR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeIntegersBs2          cCsd}tj|j}|jtj|jd}tj|j}|jtj|jd}tj|j}|jtj|jd}tj|j}|jtj|jd}tj|j}|jtj|jdS(Ns "string1'sstring1"s "\xt"s "\"s "\x"(R R3R4R}R~tConsumeByteString(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeByteStringbscCs5d}tj|j}|jtj|jdS(Ns not-a-bool(R R3R4R}R~R:(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeBoolwscCsBtjdj}|j|j|jtj|jdS(Ns# some comment(R R3R4RR;R}R~tConsumeComment(RRA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestSkipComment|scCs[tjdjdt}|j|j|jd|j|j|jdS(Ns# some commentt skip_comments( R R3R4RJt assertFalseR;R RPR(RRA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeComments  cCswd}tj|jdt}|jd|j|j|j|jd|j|j|jdS(Ns # some comment # another commentRRs# some comments# another comment( R R3R4RJR RPRSR;R(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeTwoCommentss cCsd}tj|jdt}|jtj|j|jd|j|j|j d|j |jtj|j|jd|j |j |j |jd|j|j|j dS(Nssome_number: 4 # some commentRRt some_numberRis# some comment(R R3R4RJR}R~RPR R5R=R>R7RSR;R(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeTrailingComments cCsatjdjdt}|j|j|jtdf|j|j|jdS(Ns# some commentRR( R R3R4RJRSR;R tConsumeCommentOrTrailingCommentR(RRA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeLineComments   cCsd}tj|jdt}|jtdf|j|j|j|jtdf|j|j|jdS(Ns # some comment # another commentRRs# some comments# another comment( R R3R4RJR RXRSR;R(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeTwoLineCommentss  cCsd}tj|jdt}|jtj|j|jd|j|j|j d|j |jtj|j|jd|j |j |j |jtdf|j|j|j dS(Nssome_number: 4 # some commentRRRVRis# some comment(R R3R4RJR}R~RXR R5R=R>R7RSR;R?R(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testConsumeAndCheckTrailingComments      cCsd}tj|jdt}|jd|j|j|jd|j|jd|j|jt df|j |j |j dS(Ns2some_number: 4 # some comment # not a new commentRRRVRis"# some comment # not a new comment( R R3R4RJR R5R=R>R7R?RXRR;(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestHashinComments  (RRRCRGRLRNRORQRTRURWRYRZR[R\(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRs M         tPrettyPrinterTestcBs5eZdZdZdZdZdZRS(cCsVd}|j}|jj}d|_|jtj|dtd|ddS(NcSs ~~~dS(N(tNone(R5tindentR;((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRis i*R;tmessage_formatters"repeated_nested_message { bb: 42 }(R-R<R=R>R%R R3R?(RR4RiR5R@((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintNoMatchs   cs\fd}j}|jj}d|_|jtj|dtd|ddS(Ncs-~~|jjjjkr)d|jSdS(NsMy lucky number is %s(R_R-t NestedMessageR>(RR_R;(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRisi*R;R`s1repeated_nested_message { My lucky number is 42 }(R-R<R=R>R%R R3R?(RR4RiR5R@((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintOneLines  csfd}j}|jj}d|_|jtj|dtd|d|jtj|dtd|ddS(NcsG|jjjjkrC|r$dndd|}d||jfSdS(Nt s sMy lucky number is:%s%s(R_R-RbR>R^(RR_R;tline_deliminator(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRisi*R;R`s2repeated_nested_message { My lucky number is: 42 }s7repeated_nested_message { My lucky number is: 42 } ( R-R<R=R>R%R R3R?RJ(RR4RiR5R@((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintMultiLines  csifd}j}|jtj|dtd|d|jtj|dtd|ddS(Ncs#~~|jjjkrdSdS(NsThe is the message!(R_R-R^(RR_R;(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRisR;R`sThe is the message! sThe is the message!(R-R%R R3RJR?(RR4RiR5((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintEntireMessages csfd}j}d|_|jj}d|_|jj}d|_|j}d|_|jtj|dt d|ddS( Ncs-~~|jjjjkr)d|jSdS(NsMy lucky number is %s(R_R-RbR>R^(RR_R;(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRis i=i*iciR;R`soptional_int32: 61 optional_nested_message { My lucky number is 1 } repeated_nested_message { My lucky number is 42 } repeated_nested_message { My lucky number is 99 }( R-RR<R=R>RR%R R3R?(RR4RiR5R@((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintMultiplePartss      (RRRaRcRfRgRh(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR]s     t__main__(#t__doc__t __author__R?R'R8Rt unittest2tunittestt ImportErrortgoogle.protobuf.internalRtgoogle.protobufRRRRRRRRRR R tTestCaseR Rt ParametersR,RRRRR]Rtmain(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt!sF      ]