???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
hc           @   s1  d  Z  d Z y d d l Z Wn e k
 r; d d l Z n Xd d l m Z d d l m Z d d l m	 Z	 d d l m
 Z
 d d l m Z d d	 l m Z d d
 l m Z d d l m Z d d l m Z d d l m Z d Z d e j f d     YZ d e j f d     YZ e d k r-e j   n  d S(   s   Unittest 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(   t   test_bad_identifiers_pb2(   t   unittest_custom_options_pb2(   t   unittest_import_pb2(   t   unittest_import_public_pb2(   t   unittest_mset_pb2(   t   unittest_mset_wire_format_pb2(   t    unittest_no_generic_services_pb2(   t   unittest_pb2(   t   service(   t   symbol_databasei    t   GeneratorTestc           B   s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s6   d } t  j } |  j | j j | j j | j  d  S(   Nt   optional_nested_message(   R   t   TestAllTypest   assertEqualt   NestedMessaget
   DESCRIPTORt   fields_by_namet   message_type(   t   selft
   field_namet
   proto_type(    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testNestedMessageDescriptor@   s
    		c         C   s   |  j  d t j  |  j  d t j  |  j  d t j  t j   } |  j  d | j  |  j  d t j j  |  j  d | j  |  j  d t j j  |  j  d | j  |  j  d t j j  d  S(   Ni   i   i   i   i   i   (	   R   R   t   FOREIGN_FOOt   FOREIGN_BARt   FOREIGN_BAZR   t   FOOt   BARt   BAZ(   R   t   proto(    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt	   testEnumsG   s    c            s  t  j   } d       f d   } |  j | | j   |  j | j d k  |  j | | j   |  j | j d k   |  j   | j   |  j | | j   |  j | j d k  |  j | | j   |  j | j d k   |  j   | j   |  j	 d | j
  d  S(   Nc         S   s
   |  |  k S(   N(    (   t   val(    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   isnan\   s    c            s     |   o   |  d  S(   Ni    (    (   R   (   R   (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   isinf_   s    i    s   ? ? ?? ?? ??? ??/ ??-(   R   t   TestExtremeDefaultValuest
   assertTruet
   inf_doublet   neg_inf_doublet
   nan_doublet	   inf_floatt   neg_inf_floatt	   nan_floatR   t   cpp_trigraph(   R   t   messageR    (    (   R   sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testExtremeDefaultValuesW   s    	c         C   s   t  j j } i t d 6t d 6t d 6t d 6} t g  | j D]' } | j | k r; | j | j f ^ q;  } |  j	 | |  d  S(   Nt   optional_int32t   repeated_int32R   t   default_int32(
   R   R   R   t   Falset   Truet   dictt   fieldst   namet   has_default_valueR   (   R   t   desct   expected_has_default_by_namet   ft   has_default_by_name(    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testHasDefaultValuesp   s    
*c         C   s?   |  j  t j j t j j  |  j  t j j j t j j  d  S(   N(   R   R   t   optional_int32_extensiont   containing_typet   TestAllExtensionsR   t   TestRequiredt   single(   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt'   testContainingTypeBehaviorForExtensions   s    c         C   s9   |  j  t j j d   |  j  t j j j t j j  d  S(   N(   R   R   R:   t   extension_scopet   NoneR=   R>   R   (   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testExtensionScope   s    c         C   sW   |  j  t j j  |  j  t j j j  t j j } | j d } |  j  | j  d  S(   Nt   a(   R"   R   R:   t   is_extensionR=   R>   R   R   (   R   t   message_descriptort   non_extension_descriptor(    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testIsExtension   s
    c         C   s)   t  j   } |  j | j j   j  d  S(   N(   R   t   TestMessageSetR"   R   t
   GetOptionst   message_set_wire_format(   R   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testOptions   s    c         C   s9   t  j   } | j j d j   } |  j | d  k	  d  S(   Nt   AnEnum(   R   t   TestMessageWithCustomOptionsR   t   enum_types_by_nameRI   R"   RA   (   R   R   t   enum_options(    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testMessageWithCustomOptions   s    c         C   s   |  j  t t j j j  t t j j j t j j j t j j j g   |  j  t j	 j j g   |  j  t j j j j g   d  S(   N(
   R   t   setR   R   R   t   nested_typesR   t   OptionalGroupt   RepeatedGroupt   TestEmptyMessage(   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testNestedTypes   s    c         C   s   |  j  t j j j d  k  |  j  t j j j d  k  |  j t j j j j t j j  |  j t j j j j t j j  |  j t j j	 j j t j j  d  S(   N(
   R"   R   RU   R   R;   RA   R   R   R   RT   (   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testContainingType   s    c         C   s9   |  j  t j j d  k  |  j t j j t j j  d  S(   N(	   R"   R   t   _FOREIGNENUMR;   RA   R   t   _TESTALLTYPES_NESTEDENUMR   R   (   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt"   testContainingTypeInEnumDescriptor   s    c         C   s   |  j  t j j j j d  t j j j } |  j  | j j d  |  j  t j j j j d  |  j  t j	 j j d  |  j  t j
 j j d  |  j  t j j j d  d  S(   Nt   protobuf_unittestt   protobuf_unittest_import(   R   R   R   R   t   filet   packageR   R   t   ImportMessageRX   RY   t   _IMPORTENUM(   R   R5   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testPackage   s     c         C   sg   |  j  t j j j g   |  j  t j j j d t f g  |  j  t j j j d d d t f g  d  S(	   Ni   i*   i+   i/  i  i   (   i*   i+   (   i/  i  (   R   R   R   R   t   extension_rangesR<   t   MAX_EXTENSIONt   TestMultipleExtensionRanges(   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testExtensionRange   s    c         C   s   |  j  t j j d  |  j  t j j d  |  j t j j d  k  |  j  t j j t	 j g  |  j  t	 j j t
 j g  |  j  t	 j j t
 j g  d  S(   Ns   google/protobuf/unittest.protoR[   (   R   R   R   R3   R^   t   assertFalset   serialized_pbRA   t   dependenciesR   R   t   public_dependencies(   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testFileDescriptor   s    c         C   st   |  j  t t d   |  j  t t d   |  j  t t d   t t d  rp |  j t t j t j   n  d  S(   Nt   TestMessageR   t   test_extensiont   TestService(   R"   t   hasattrR   Rf   t
   issubclassRm   R   t   Service(   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testNoGenericServices   s    c         C   sI   t  j } |  j t  j | j t  j j  |  j t  j j | j k  d  S(   N(   R   R   R   t   _TESTALLTYPESt   message_types_by_nameR3   Rf   t   _TESTALLTYPES_NESTEDMESSAGE(   R   t	   file_type(    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testMessageTypesByName   s    		c         C   s-   t  j } |  j t  j | j t  j j  d  S(   N(   R   R   R   RX   RN   R3   (   R   Ru   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testEnumTypesByName   s    	c         C   s-   t  j } |  j t  j | j t  j j  d  S(   N(   R   R   R   t   my_extension_stringt   extensions_by_nameR3   (   R   Ru   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testExtensionsByName  s    	c         C   s^   t  j   } |  j d | j j  t j   } |  j d | j  |  j t j t j k  d  S(   Ni    (	   R   R   R   t   optional_public_import_messaget   eR   t   PublicImportMessageR"   R   (   R   t   all_type_protot   public_import_proto(    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testPublicImports
  s    c         C   sx   t  j   } |  j | j t  j d  |  j | j t  j d  |  j | j t  j d  |  j | j t  j d  d  S(   Nt   foot   bart   bazt   qux(   R    t   TestBadIdentifiersR   t
   ExtensionsR*   t
   descriptort
   reflectionR   (   R   R*   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testBadIdentifiers  s    c         C   s<  t  j j } |  j d t | j   |  j d | j d j  |  j d | j d j  |  j | | j d j	  |  j | j d | j
 d  t d d d d g  } |  j | t g  | j d j D] } | j ^ q   xV | j j   D]E \ } } | | k r$|  j | j d | j  q |  j | j  q Wd  S(   Ni   t   oneof_fieldi    t   oneof_uint32t   oneof_nested_messaget   oneof_stringt   oneof_bytes(   R   R   R   R   t   lent   oneofsR3   t   indext   assertIsR;   t   oneofs_by_nameRQ   R2   R   t   itemst   containing_oneoft   assertIsNone(   R   R5   t   nested_namest   fieldR   t
   field_desc(    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt	   testOneof"  s    	-(   t   __name__t
   __module__R   R   R+   R9   R?   RB   RG   RK   RP   RV   RW   RZ   Ra   Re   Rj   Rq   Rv   Rw   Rz   R   R   R   (    (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyR
   >   s,   														
							t   SymbolDatabaseRegistrationTestc           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   s?   Checks that messages, enums and files are correctly registered.c         C   s   |  j  t j t j   j d   |  j  t j j t j   j d   |  j t   t j   j d  Wd  QX|  j  t j j	 t j   j d   |  j  t j j
 t j   j d   d  S(   Ns   protobuf_unittest.TestAllTypess,   protobuf_unittest.TestAllTypes.NestedMessages   protobuf_unittest.NestedMessages,   protobuf_unittest.TestAllTypes.OptionalGroups,   protobuf_unittest.TestAllTypes.RepeatedGroup(   R   R   R   R	   t   Defaultt	   GetSymbolR   t   assertRaisest   KeyErrorRS   RT   (   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testGetSymbol8  s"    
	
	
	c         C   sN   |  j  d t j   j j d  j  |  j  d t j   j j d  j  d  S(   Ns   protobuf_unittest.ForeignEnums)   protobuf_unittest.TestAllTypes.NestedEnum(   R   R	   R   t   poolt   FindEnumTypeByNamet	   full_name(   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyR   K  s    c         C   s)   |  j  d t j   j j d  j  d  S(   Ns   google/protobuf/unittest.proto(   R   R	   R   R   t   FindFileByNameR3   (   R   (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   testFindFileByNameU  s    (   R   R   t   __doc__R   R   R   (    (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyR   5  s   		
t   __main__(   R   t
   __author__t	   unittest2t   unittestt   ImportErrort   google.protobuf.internalR    t   google.protobufR   R   R   R   R   R   R   R   R	   Rc   t   TestCaseR
   R   R   t   main(    (    (    sK   /usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt   <module>'   s(   &