SLjc@sMdZdZyddlZWnek r;ddlZnXddlmZddlmZddlmZddl m Z ddl m Z dd l m Z dd l m Z dd l mZdd l mZdd l mZejZdZdefdYZdefdYZdefdYZedkrIejndS(sJTest for preservation of unknown fields in the pure Python implementation.s!bohdank@google.com (Bohdan Koval)iN(tunittest_mset_pb2(t unittest_pb2(tunittest_proto3_arena_pb2(tapi_implementation(tencoder(tmessage_set_extensions_pb2(tmissing_enum_values_pb2(t test_util(ttesting_refleaks(t type_checkerscCs4tjtjdko'tjdkd|S(Ntcppis7Addtional test for pure python involved protect members(tunittesttskipIfRtTypetVersion(tfunc((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt(SkipCheckUnknownFieldIfCppImplementation;s!tUnknownFieldsTestcBsYeZdZdZdZdZdZdZdZdZ dZ RS( cCsftjj|_tj|_tj|j|jj|_tj |_ |j j |jdS(N( Rt TestAllTypest DESCRIPTORt descriptort all_fieldsRt SetAllFieldstSerializeToStringtall_fields_datatTestEmptyMessaget empty_messagetParseFromString(tself((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pytsetUpCs cCs)|jj}|j||jkdS(N(RRt assertTrueR(Rtdata((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testSerializeKscCs^tj}|j|j|r>|j|j|jn|jdt|jdS(Ni(RRRRt assertEqualRtlen(Rtpreservetmessage((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pytexpectSerializeProto3Rs  cCsFtj}|j|tj| |j| tj|dS(N(Rt&GetPythonProto3PreserveUnknownsDefaultR%t&SetPythonProto3PreserveUnknownsDefault(Rtdefault_preserve((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestSerializeProto3Zs   cCs&|j|jj|jjdS(N(R!RtByteSizeR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testByteSizedscCs#|jdt|jjdS(Ni(R!R"Rt ListFields(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestListFieldsgscCstj}|jj}d|_tj}d|_|j|_ |j}tj }|j ||j}tj}|j ||j ||dS(Nii90( Rt RawMessageSettitemtaddttype_idRtTestMessageSetExtension1tiRR$tTestMessageSettMergeFromStringR!(RtrawR/tmessage1t serializedtprotot reserializedtnew_raw((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt1testSerializeMessageSetWireFormatUnknownExtensionks          cCsltj}|j|j|j|j||jjd|j|jj|j |j|dS(Ntoptional_string( RRRRR!RRt ClearFieldRtassertNotEqual(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testEqualss  cCs|jj|jd|jjtj}tj}d|_|jj|j|j j j|j|j d|jj|j d|j dj|j|jd|jj|jd|j djdS(Nttdiscardi( RtDiscardUnknownFieldsR!RRRR=toptional_nested_messageRtrepeated_nested_messageR0R?(RR$t other_message((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestDiscardUnknownFieldss"        ( t__name__t __module__RR R%R)R+R-R<R@RG(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRAs       tUnknownFieldsAccessorsTestcBsMeZdZdZedZdZdZdZdZ RS(cCsftjj|_tj|_tj|j|jj|_tj |_ |j j |jdS(N( RRRRRRRRRRRR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRs c Cs|jj|}tj|j}tj|j|}i}x\|jj D]N\}}||krHt j j |d} | |dt ||j|qHqHW|j|||dS(Ni(Rtfields_by_nameR tFIELD_TYPE_TO_WIRE_TYPEttypeRtTagBytestnumberRt_unknown_fieldsRRt_decoders_by_tagR"RR!( Rtnametexpected_valuetfield_descriptort wire_typet field_tagt result_dictt tag_bytestvaluetdecoder((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pytCheckUnknownFields &cCs|jd|jj|jd|jj|jd|jj|jd|jj|jd|jj|jd|jj|jd|jjdS(Ntoptional_nested_enumtrepeated_nested_enumtoptional_int32toptional_fixed32toptional_fixed64R=t optionalgroup( R[RR\R]R^R_R`R=Ra(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestCheckUnknownFieldValues             cCs9tj}|j|j|j|j|jdS(N(RRtCopyFromRR!RR(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testCopyFroms cCstj}d|_d|_tj}|j|j|jdd|_d|_tj}|j|j|j ||j|j|j |jd|j |jd|j |jddS(NiiR^ii( RRR^toptional_uint32RRRR>toptional_int64t MergeFromR!(RR$tsourcet destination((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testMergeFroms         cCs*|jj|j|jjddS(NRA(RtClearR!R(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testClears cCs9tj}|j|j|j|j|jdS(N(RtTestEmptyMessageWithExtensionsRRR!R(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownExtensionss ( RHRIRR[RRbRdRjRlRn(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRJs     tUnknownEnumValuesTestcBsVeZdZdZdZdZdZdZedZ dZ RS(cCstjj|_tj|_tjj|j_|jjjtjjtjj g|jj jtjjtjj g|jj |_ tj |_|jj|j dS(N(RtTestEnumValuesRRR$tZEROR\R]textendtONEtpacked_nested_enumRt message_datatTestMissingEnumValuestmissing_messageR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRs    c Cs|jj|}tj|j}tj|j|}i}x\|jj D]N\}}||krHt j j |d} | |dt ||j|qHqHW|j|||dS(Ni(RRKR RLRMRRNRORwRPRRpRQR"R$R!( RRRRSRTRURVRWRXRYRZ((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyR[s   &cCsKtj}d|_tj}|j|j|j|jddS(Ntblahi(Rt JustStringtdummyRpRRR!R\(Rt just_stringtmissing((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt!testUnknownParseMismatchEnumValue$s    cCsk|j|jjd|j|jjd|jj}|jjd|j|jj|dS(NR\i(t assertFalseRwtHasFieldR!R\RR>(RR8((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownEnumValue1s cCs|jg|jjdS(N(R!RwR](R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownRepeatedEnumValue9scCs|jg|jjdS(N(R!RwRt(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownPackedEnumValue<scCsF|jd|jj|jd|jj|jd|jjdS(NR\R]Rt(R[R$R\R]Rt(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt!testCheckUnknownFieldValueForEnum?s      cCs9tj}|j|jj|j|j|dS(N(RRpRRwRR!R$(Rt new_message((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testRoundTripHs ( RHRIRR[R}RRRRRR(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRos     t__main__(t__doc__t __author__t unittest2R t ImportErrortgoogle.protobufRRRtgoogle.protobuf.internalRRRRRRR t BaseTestCaseRRRJRoRHtmain(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt!s,   `\Q