3 SÉLj·% ã @ s¬ d Z dZyddlZW n ek r0 ddlZY nX ddlmZ ddlmZ ddlm Z ddlm Z ddlmZ dd lmZ dd lm Z G dd„ dejƒZed kr¨ejƒ dS )z*Tests for google.protobuf.message_factory.z"matthewtoia@google.com (Matt Toia)é N)Údescriptor_pb2)Úapi_implementation)Úfactory_test1_pb2)Úfactory_test2_pb2)Údescriptor_database)Údescriptor_pool)Úmessage_factoryc @ s4 e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd d „ ZdS )ÚMessageFactoryTestc C s( t jjtjjƒ| _t jjtjjƒ| _d S )N) r ÚFileDescriptorProtoÚ FromStringr Ú DESCRIPTORZ serialized_pbÚfactory_test1_fdr Úfactory_test2_fd)Úself© r ú*/usr/lib/python3.6/message_factory_test.pyÚsetUp4 s zMessageFactoryTest.setUpc C s< |ƒ }d|_ d|_d|j_d|j_d|j_d|jj_d|j_|jj j dddgƒ |jj jd ƒ d|_d|_d|j_d|j_ d |jj_ d|j_d|_|j j d ddgƒ |j jdƒ |j jƒ d |j d _d|j d _|j jddd� d |jj_ d|jjjj_ |jƒ }tjj|ƒ}|jƒ }| j||ƒ |j|ƒ}| j||ƒ d S )Né* r znested message valueé é ZoneZtwoZthreeZfouré zone deepz zero deepZhelloZworldZtestingZ123)Úpart_1Úpart_2é )Z mandatoryZnested_factory_2_enumZnested_factory_2_messageÚvalueZfactory_1_messageZfactory_1_enumZnested_factory_1_enumZnested_factory_1_messageZscalar_valueZ list_valueÚextendÚappendZcircular_messageZgroupedÚaddr r ZloopZSerializeToStringr ÚFactory2Messager ÚassertEqual)r ÚclsÚmsgZ serializedZ convertedZreserializedÚresultr r r Ú_ExerciseDynamicClass: s> z(MessageFactoryTest._ExerciseDynamicClassc C s~ t jƒ }tj|ƒ}|j| jƒ |j| jƒ tjƒ }|j |j dƒƒ}| j|tj kƒ | j|ƒ |j |j dƒƒ}| j||kƒ d S )Nz/google.protobuf.python.internal.Factory2Message)r ZDescriptorDatabaser ÚDescriptorPoolÚAddr r r ÚMessageFactoryZGetPrototypeZFindMessageTypeByNameZassertFalser r r# Ú assertTrue)r ZdbÚpoolÚfactoryr Zcls2r r r ÚtestGetPrototype\ s z#MessageFactoryTest.testGetPrototypec C sŒ �x„t dƒD �]v}| j| jj| jjƒ tj| j| jgƒ}| jt ddgƒj t |jƒ ƒƒƒ | j|d ƒ |d }| jt ddgƒj t dd„ |j jjj|j ƒD ƒƒƒƒ |d ƒ }|jjdƒ}|jjdƒ}d|j|<