Duac@s1dZdZyddlZWnek r;ddlZnXddlmZddlmZddlm Z ddlm Z ddlm Z dd lm Z dd lm Z dd lmZdd lmZdd lmZdZdejfdYZdejfdYZedkr-ejndS(sUnittest that directly tests the output of the pure-Python protocol compiler. See //google/protobuf/internal/reflection_test.py for a test which further ensures that we can use Python protocol message objects as we expect. s#robinson@google.com (Will Robinson)iN(ttest_bad_identifiers_pb2(tunittest_custom_options_pb2(tunittest_import_pb2(tunittest_import_public_pb2(tunittest_mset_pb2(tunittest_mset_wire_format_pb2(t unittest_no_generic_services_pb2(t unittest_pb2(tservice(tsymbol_databasei t GeneratorTestcBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZRS(cCs6d}tj}|j|jj|jj|jdS(Ntoptional_nested_message(Rt TestAllTypest assertEqualt NestedMessaget DESCRIPTORtfields_by_namet message_type(tselft field_namet proto_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestNestedMessageDescriptor@s   cCs|jdtj|jdtj|jdtjtj}|jd|j|jdtjj|jd|j|jdtjj|jd|j|jdtjjdS(Niiiiii( R Rt FOREIGN_FOOt FOREIGN_BARt FOREIGN_BAZR tFOOtBARtBAZ(Rtproto((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt testEnumsGs cstj}dfd}|j||j|j|jdk|j||j|j|jdk|j|j|j||j|j|jdk|j||j|j|jdk|j|j|j d|j dS(NcSs ||kS(N((tval((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pytisnan\scs| o|dS(Ni((R(R(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pytisinf_sis? ? ?? ?? ??? ??/ ??-( RtTestExtremeDefaultValuest assertTruet inf_doubletneg_inf_doublet nan_doublet inf_floatt neg_inf_floatt nan_floatR t cpp_trigraph(RtmessageR ((RsK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtremeDefaultValuesWs  cCstjj}itd6td6td6td6}tg|jD]'}|j|kr;|j|jf^q;}|j ||dS(Ntoptional_int32trepeated_int32R t default_int32( RR RtFalsetTruetdicttfieldstnamethas_default_valueR (Rtdesctexpected_has_default_by_nametfthas_default_by_name((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestHasDefaultValuesps   *cCs?|jtjjtjj|jtjjjtjjdS(N(R Rtoptional_int32_extensiontcontaining_typetTestAllExtensionsRt TestRequiredtsingle(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt'testContainingTypeBehaviorForExtensionss cCs9|jtjjd|jtjjjtjjdS(N(R RR:textension_scopetNoneR=R>R(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtensionScopescCsW|jtjj|jtjjjtjj}|jd}|j|j dS(Nta(R"RR:t is_extensionR=R>RR(Rtmessage_descriptortnon_extension_descriptor((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestIsExtensions   cCs)tj}|j|jjjdS(N(RtTestMessageSetR"Rt GetOptionstmessage_set_wire_format(RR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt testOptionss cCs9tj}|jjdj}|j|dk dS(NtAnEnum(RtTestMessageWithCustomOptionsRtenum_types_by_nameRIR"RA(RRt enum_options((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestMessageWithCustomOptionss cCs|jttjjjttjjjtjjjtjjjg|jtj jjg|jtjjjjgdS(N( R tsetRR Rt nested_typesRt OptionalGroupt RepeatedGrouptTestEmptyMessage(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestNestedTypess  cCs|jtjjjdk|jtjjjdk|jtjjjjtjj|jtjjjjtjj|jtjj jjtjjdS(N( R"RRURR;RAR R RRT(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestContainingTypes  cCs9|jtjjdk|jtjjtjjdS(N( R"Rt _FOREIGNENUMR;RAR t_TESTALLTYPES_NESTEDENUMR R(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt"testContainingTypeInEnumDescriptorscCs|jtjjjjdtjjj}|j|jjd|jtjjjjd|jtj jjd|jtj jjd|jtj jjddS(Ntprotobuf_unittesttprotobuf_unittest_import( R RR RtfiletpackageRRt ImportMessageRXRYt _IMPORTENUM(RR5((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt testPackages   cCsg|jtjjjg|jtjjjdtfg|jtjjjdddtfgdS( Nii*i+i/ii(i*i+(i/i(R RR Rtextension_rangesR<t MAX_EXTENSIONtTestMultipleExtensionRanges(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtensionRanges  cCs|jtjjd|jtjjd|jtjjdk|jtjjt jg|jt jjt jg|jt jj t jgdS(Nsgoogle/protobuf/unittest.protoR[( R RRR3R^t assertFalset serialized_pbRAt dependenciesRRtpublic_dependencies(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestFileDescriptors  cCst|jttd|jttd|jttdttdrp|jttjtjndS(Nt TestMessageRttest_extensiont TestService(R"thasattrRRft issubclassRmRtService(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestNoGenericServicess cCsItj}|jtj|jtjj|jtjj|jkdS(N(RRR t _TESTALLTYPEStmessage_types_by_nameR3Rft_TESTALLTYPES_NESTEDMESSAGE(Rt file_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestMessageTypesByNames  cCs-tj}|jtj|jtjjdS(N(RRR RXRNR3(RRu((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestEnumTypesByNames cCs-tj}|jtj|jtjjdS(N(RRR tmy_extension_stringtextensions_by_nameR3(RRu((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtensionsByNames cCs^tj}|jd|jjtj}|jd|j|jtjtjkdS(Ni( RR R toptional_public_import_messageteRtPublicImportMessageR"R(Rtall_type_prototpublic_import_proto((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestPublicImports s    cCsxtj}|j|jtjd|j|jtjd|j|jtjd|j|jtjddS(Ntfootbartbaztqux(RtTestBadIdentifiersR t ExtensionsR*t descriptort reflectionR(RR*((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestBadIdentifierss cCs<tjj}|jdt|j|jd|jdj|jd|jdj|j||jdj |j|jd|j dt ddddg}|j|t g|jdj D]}|j^qxV|j jD]E\}}||kr$|j|jd|jq|j|jqWdS(Nit oneof_fieldit oneof_uint32toneof_nested_messaget oneof_stringt oneof_bytes(RR RR tlentoneofsR3tindextassertIsR;toneofs_by_nameRQR2Rtitemstcontaining_oneoft assertIsNone(RR5t nested_namestfieldRt field_desc((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt testOneof"s  - (t__name__t __module__RRR+R9R?RBRGRKRPRVRWRZRaReRjRqRvRwRzRRR(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyR >s,               tSymbolDatabaseRegistrationTestcBs)eZdZdZdZdZRS(s?Checks that messages, enums and files are correctly registered.cCs|jtjtjjd|jtjjtjjd|jttjjdWdQX|jtjj tjjd|jtjj tjjddS(Nsprotobuf_unittest.TestAllTypess,protobuf_unittest.TestAllTypes.NestedMessagesprotobuf_unittest.NestedMessages,protobuf_unittest.TestAllTypes.OptionalGroups,protobuf_unittest.TestAllTypes.RepeatedGroup( R RR R tDefaultt GetSymbolRt assertRaisestKeyErrorRSRT(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt testGetSymbol8s"         cCsN|jdtjjjdj|jdtjjjdjdS(Nsprotobuf_unittest.ForeignEnums)protobuf_unittest.TestAllTypes.NestedEnum(R R RtpooltFindEnumTypeByNamet full_name(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyRKs cCs)|jdtjjjdjdS(Nsgoogle/protobuf/unittest.proto(R R RRtFindFileByNameR3(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestFindFileByNameUs(RRt__doc__RRR(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyR5s  t__main__(Rt __author__t unittest2tunittestt ImportErrortgoogle.protobuf.internalRtgoogle.protobufRRRRRRRRR RctTestCaseR RRtmain(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt's( &