3 SLj% @ s d Z dZyddlZW n ek r0 ddlZY nX ddlmZ ddlmZ ddlm Z ddlm Z ddlmZ dd lmZ dd lm Z G dd dejZed krej 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_pbfactory_test1_fdr factory_test2_fd)self r */usr/lib/python3.6/message_factory_test.pysetUp4 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_1part_2 )Z mandatoryZnested_factory_2_enumZnested_factory_2_messagevalueZfactory_1_messageZfactory_1_enumZnested_factory_1_enumZnested_factory_1_messageZscalar_valueZ list_valueextendappendZcircular_messageZgroupedaddr r ZloopZSerializeToStringr Factory2Messager assertEqual)r clsmsgZ serializedZ convertedZreserializedresultr 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 DescriptorPoolAddr r r MessageFactoryZGetPrototypeZFindMessageTypeByNameZassertFalser r r# assertTrue)r Zdbpoolfactoryr Zcls2r r r testGetPrototype\ s z#MessageFactoryTest.testGetPrototypec C s xt dD ]v}| j| jj| jj tj| j| jg}| jt ddgj t |j | j|d |d }| jt ddgj t dd |j jjj|j D |d }|jjd}|jjd}d|j|<