ó Du—ac@sMdZdZyddlZWnek r;ddlZnXddlmZddlmZddlmZddl m Z ddl m Z dd l m Z dd l m Z dd l mZdd l mZdd l mZejZd„Zdefd„ƒYZdefd„ƒYZdefd„ƒYZedkrIejƒndS(sJTest for preservation of unknown fields in the pure Python implementation.s!bohdank@google.com (Bohdan Koval)iÿÿÿÿN(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_checkerscCs4tjtjƒdko'tjƒdkdƒ|ƒ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!tUnknownFieldsTestcBsYeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z RS( cCsftjj|_tjƒ|_tj|jƒ|jjƒ|_tj ƒ|_ |j j |jƒdS(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||jkƒdS(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|jƒƒn|jdt|jƒƒƒdS(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ƒ|jjƒƒdS(N(R!RtByteSizeR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testByteSizedscCs#|jdt|jjƒƒƒdS(Ni(R!R"Rt ListFields(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestListFieldsgscCs¦tjƒ}|jjƒ}d|_tjƒ}d|_|jƒ|_ |jƒ}tj ƒ}|j |ƒ|jƒ}tjƒ}|j |ƒ|j ||ƒdS(Ni«¿Ýi90( 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 testEqualsƒs  cCsó|jjƒ|jd|jjƒƒtjƒ}tjƒ}d|_|jj|jƒƒ|j j ƒj|jƒƒ|j d|jjƒƒ|j d|j djƒƒ|jƒ|jd|jjƒƒ|jd|j djƒƒdS(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.pyttestDiscardUnknownFieldsŒs"        ( 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       tUnknownFieldsAccessorsTestcBsMeZd„Zd„Zed„ƒZd„Zd„Zd„Zd„Z RS(cCsftjj|_tjƒ|_tj|jƒ|jjƒ|_tj ƒ|_ |j j |jƒdS(N( RRRRRRRRRRRR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyR£s 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.pytCheckUnknownField±s &cCsž|jd|jjƒ|jd|jjƒ|jd|jjƒ|jd|jjƒ|jd|jjƒ|jd|jjƒ|jd|jjƒdS(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.pyttestCheckUnknownFieldValue¼s             cCs9tjƒ}|j|jƒ|j|jƒ|jƒdS(N(RRtCopyFromRR!RR(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testCopyFromØs cCsØtjƒ}d|_d|_tjƒ}|j|jƒƒ|jdƒd|_d|_tjƒ}|j|jƒƒ|j |ƒ|j|jƒƒ|j |jdƒ|j |jdƒ|j |jdƒdS(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 testMergeFromÝs         cCs*|jjƒ|j|jjƒdƒdS(NRA(RtClearR!R(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt testClearòs cCs9tjƒ}|j|jƒ|j|jƒ|jƒdS(N(RtTestEmptyMessageWithExtensionsRRR!R(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownExtensions÷s ( RHRIRR[RRbRdRjRlRn(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRJ¡s     tUnknownEnumValuesTestcBsVeZd„Zd„Zd„Zd„Zd„Zd„Zed„ƒZ d„Z RS(cCs²tjj|_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.pyRÿs    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|jdƒdS(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|jjƒdS(N(R!RwR](R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownRepeatedEnumValue9scCs|jg|jjƒdS(N(R!RwRt(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownPackedEnumValue<scCsF|jd|jjƒ|jd|jjƒ|jd|jjƒdS(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}R€RR‚RRƒR…(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRoýs     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