
    iNM                        d Z dZddlZddl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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Zej,                   G d dej,                               Zej,                   G d dej,                               Zej,                   G d dej,                               Zedk(  r ej6                          yy# e$ r Y w xY w)zJTest for preservation of unknown fields in the pure Python implementation.z!bohdank@google.com (Bohdan Koval)    N)map_unittest_pb2)unittest_mset_pb2)unittest_pb2)unittest_proto3_arena_pb2)api_implementation)encoder)message_set_extensions_pb2)missing_enum_values_pb2)	test_util)testing_refleaks)type_checkers)wire_format)
descriptor)unknown_fieldsc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
UnknownFieldsTestc                 l   t         j                  j                  | _        t        j                         | _        t        j                  | j                         | j                  j                         | _        t        j                         | _
        | j                  j                  | j                         y Nr   TestAllTypes
DESCRIPTORr   
all_fieldsr   SetAllFieldsSerializeToStringall_fields_dataTestEmptyMessageempty_messageParseFromStringselfs    ~/var/www/catia.catastroantioquia-mas.com/valormas/lib/python3.12/site-packages/google/protobuf/internal/unknown_fields_test.pysetUpzUnknownFieldsTest.setUp?   w    "//::DO"//1DO4??+??<<>D%668D&&t';';<    c                 t    | j                   j                         }| j                  || j                  k(         y r   )r   r   
assertTruer   )r    datas     r!   testSerializezUnknownFieldsTest.testSerializeG   s/    //1D 	OODD0001r$   c                     t        j                         }|j                  | j                         | j	                  | j                  |j                                y r   )r   r   r   r   assertEqualr   r    messages     r!   testSerializeProto3z%UnknownFieldsTest.testSerializeProto3N   sC    '88:GD001T))7+D+D+FGr$   c                     | j                  | j                  j                         | j                  j                                y r   )r*   r   ByteSizer   r   s    r!   testByteSizezUnknownFieldsTest.testByteSizeT   s.    T__--/1C1C1L1L1NOr$   c                 j    | j                  dt        | j                  j                                      y )Nr   )r*   lenr   
ListFieldsr   s    r!   testListFieldsz UnknownFieldsTest.testListFieldsW   s&    QD..99;<=r$   c                 ^   t        j                         }|j                  j                         }d|_        t        j                         }d|_        |j                         |_	        |j                         }t        j                         }|j                  |       t        j                  |      }| j                  t        |      d       | j                  |d   j                   |j                         | j                  |d   j"                  t$        j&                         |d   j(                  }t        j                         }|j+                  |       | j                  ||       |j                         }	t        j                         }
|
j                  |	       | j                  ||
       y )Niki90     r   )r   RawMessageSetitemaddtype_idr	   TestMessageSetExtension1ir   r,   TestMessageSetMergeFromStringr   UnknownFieldSetr*   r2   field_number	wire_typer   WIRETYPE_LENGTH_DELIMITEDr'   r   )r    rawr8   message1
serializedprotounknown_field_setdmessage_newreserializednew_raws              r!   1testSerializeMessageSetWireFormatUnknownExtensionzCUnknownFieldsTest.testSerializeMessageSetWireFormatUnknownExtension[   sa    
)
)
+C 88<<>DDL)BBDHHJ--/DL&&(J '557E	*%&66u=S*+Q/ 	&q)66E&q)33 ::<!!!A,EEGK"X{+ **,L--/GL)S'"r$   c                 Z   t        j                         }|j                  | j                         | j	                  | j
                  |       | j                  j                  d       |j                  | j                  j                                | j                  | j
                  |       y )Noptional_string)
r   r   r   r   r*   r   r   
ClearFieldr   assertNotEqualr+   s     r!   
testEqualszUnknownFieldsTest.testEquals   s~    ++-GD001T''1OO01DOO==?@**G4r$   c                    | j                   j                          | j                  d| j                   j                                t	        j
                         }t	        j
                         }d|_        |j                  j                  |j                                |j                  j                         j                  |j                                | j                  d|j                  j                                | j                  d|j                  d   j                                |j                          | j                  d|j                  j                                | j                  d|j                  d   j                                t        j                         }|j                  d   j                  j                  |j                                d|j                  d<   | j                  d|j                  d   j                  j                                |j                          | j                  d|j                  d   j                  j                                y )Nr$   discardr   r6   test1)r   DiscardUnknownFieldsr*   r   r   r   rN   optional_nested_messager   repeated_nested_messager9   rP   r   TestMapmap_int32_all_typesmap_string_string)r    r,   other_messagemsgs       r!   testDiscardUnknownFieldsz*UnknownFieldsTest.testDiscardUnknownFields   s   ++-S$,,>>@A'')G --/M$-M!##33'')+##'')99'')+W,,>>@BW,,Q/AACE  "S'99KKMNW,,Q/AACE 
"
"
$CA66FF'')+!'C#"::LLNP "::LLNPr$   N)__name__
__module____qualname__r"   r(   r-   r0   r4   rL   rQ   r^    r$   r!   r   r   <   s.    =2HP>"#H5Pr$   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	 e
j                  ej                  j                  ej                  j                  fdk  d	      d
        Zd Zd Zd Zy)UnknownFieldsAccessorsTestc                 l   t         j                  j                  | _        t        j                         | _        t        j                  | j                         | j                  j                         | _        t        j                         | _
        | j                  j                  | j                         y r   r   r   s    r!   r"   z UnknownFieldsAccessorsTest.setUp   r#   r$   c                    t        j                         dk7  ry | j                  j                  |   }t        j
                  |j                     }t        j                  |j                  |      }i }| j                  j                  D ]S  \  }}||k(  st        j                  j                  |   d   }	 |	t        |      dt!        |      | j"                  |       U | j%                  |||          y )Npythonr   )r   Typer   fields_by_namer   FIELD_TYPE_TO_WIRE_TYPEtyper   TagBytesnumberr   _unknown_fieldsr   r   _decoders_by_tag
memoryviewr2   r   r*   )
r    nameexpected_valuefield_descriptorrA   	field_tagresult_dict	tag_bytesvaluedecoders
             r!   InternalCheckUnknownFieldz4UnknownFieldsAccessorsTest.InternalCheckUnknownField   s     H,55d;556F6K6KLI  !1!8!8)DIK ..>> P	5	i	++<<YGJ
5!1c%j$//;OP 	^[1A%BCr$   c                 H   | j                   j                  |   }t        j                  |j                     }|D ]f  }|j
                  |j                  k(  s| j                  ||j                         |dk(  r| j                  |d   |j                  d   j
                         | j                  |d   |j                  d   j                         | j                  |d   |j                  d   j                         |t        j                  k(  r/| j                  t	        |j                        t        t        f       |j                  t         j                   j"                  k(  r| j                  |j                  |       K| j                  ||j                         i y )N   r   r6      )r   ri   r   rj   rk   r@   rm   r*   rA   r'   r   rB   assertInstrbyteslabelFieldDescriptorLABEL_REPEATED)r    rq   rG   rr   rs   expected_typeunknown_fields          r!   CheckUnknownFieldz,UnknownFieldsAccessorsTest.CheckUnknownField   sY   55d;!99M* ?		#	#'7'>'>	>(?(?@A


>!,(--a0==?


>!,m.@.@.C.M.M
N


>!,m.@.@.C.H.H
I
KAAA
--]//03,
?!!Z%?%?%N%NN
--**N
;


>=+=+=
>?r$   c                    t        j                  | j                        }| j                  d|| j                  j
                         | j                  d| j                  j
                         | j                  d|| j                  j                         | j                  d| j                  j                         | j                  d|| j                  j                         | j                  d| j                  j                         | j                  d|| j                  j                         | j                  d| j                  j                         | j                  d|| j                  j                         | j                  d| j                  j                         | j                  d|| j                  j                  j                  d             | j                  d| j                  j                         | j                  d|d	       | j                  d| j                  j                         | j                  d
t        |             y )Noptional_nested_enumrepeated_nested_enumoptional_int32optional_fixed32optional_fixed64rN   zutf-8optionalgroup)   r   u   b   )r   r?   r   r   r   r   ry   r   r   r   r   rN   encoder   r*   r2   r    rG   s     r!   testCheckUnknownFieldValuez5UnknownFieldsAccessorsTest.testCheckUnknownFieldValue   s   &66t7I7IJ1,????A 	""#9#'??#G#GI 	1,????A 	""#9#'??#G#GI 	+,??99; 	""#3#'??#A#AC 	-,??;;= 	""#5#'??#C#CE 	-,??;;= 	""#5#'??#C#CE 	,,??::AA'JL 	""#4#'??#B#BD 	?,') 	""?#'??#@#@B 	R./0r$   c                     t        j                         }|j                  | j                         | j	                  |j                         | j                         y r   )r   r   CopyFromr   r*   r   r   r+   s     r!   testCopyFromz'UnknownFieldsAccessorsTest.testCopyFrom  sC    ++-GT''(W..0$2F2FGr$   c                    t        j                         }d|_        d|_        t        j                         }|j                  |j                                |j                  d       d|_        d|_        t        j                         }t        j                  |      }| j                  dt        |             |j                  |j                                | j                  dt        |             t        j                  |      }| j                  dt        |             |j                  |       | j                  dt        |             |j                  |j                                | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       y )Nr6   r|   r   r{      r   )r   r   r   optional_uint32r   r   r   rO   optional_int64r   r?   r*   r2   	MergeFrom)r    r,   sourcedestinationrG   s        r!   testMergeFromz(UnknownFieldsAccessorsTest.testMergeFrom  sl   '')GGG**,F
74467'(GG//1K&66{CQ-./ 9 9 ;<Q-./&66{CQ-./&!Q-./ K99;<W++Q/W,,a0W++Q/r$   c                     t        j                  | j                        }| j                  j                          | j	                  | j                  j                         d       | j	                  t        |      d       y )Nr$   r   )r   r?   r   Clearr*   r   r2   r   s     r!   	testClearz$UnknownFieldsAccessorsTest.testClear0  s`    &66t7I7IJT''99;SAS*+R0r$   )r{   r   z tracemalloc requires python 3.4+c                 T    d fd}t        j                          t        j                         } |        t        j                         }|j                  |d      }t        j                           j                  g |D cg c]  }|j                  k(  s| c}       y c c}w )Ni  c                  d    t              D ]!  } t        j                  j                         # y r   )ranger   r?   r   )_nb_leaksr    s    r!   leaking_functionzRUnknownFieldsAccessorsTest.testUnknownFieldsNoMemoryLeak.<locals>.leaking_function=  s*    X ;!&&t'9'9:;r$   lineno)tracemallocstarttake_snapshot
compare_tostopr*   
count_diff)r    r   	snapshot1	snapshot2	top_statsxr   s   `     @r!   testUnknownFieldsNoMemoryLeakz8UnknownFieldsAccessorsTest.testUnknownFieldsNoMemoryLeak7  s     H; ))+I))+I$$Y9I 	RYK!,,(2J!KLKs   B%
B%
c                 4   t        j                         }d|j                  _        t        j                         }|j                  |j                                t        j                  |      d   j                  }| j                  dt        |             | j                  |d   j                  d       |j                          | j                  dt        |             | j                  |d   j                  d       |j                          d|_        t        j                         }|j                  j                   j                  |j                                t        j                  |j                  j                         }| j                  |d   j                  d       |j#                  d       | j                  |d   j                  d       t        j                  |j                  j                         }| j                  dt        |             y )N{   r   r6   i  payload)r   r   r   ar   r   r   r   r?   r'   r*   r2   r   r   NestedTestAllTypesr   rW   rO   )r    r,   r   sub_unknown_fieldsnested_messagerG   s         r!   testSubUnknownFieldsz/UnknownFieldsAccessorsTest.testSubUnknownFieldsK  s   '')G!G//1K 9 9 ;<'77DQGLLQ./0'*//5Q./0'*//5MMO!G!446N22BB!!#%&66668&q)..4i(&q)..4&66668Q-./r$   c                 (   t        j                         }d|_        t        j                         }|j	                  |j                                t        j                  |      d   }|j                          | j                  |j                  d       y )Nr   r   )r   r   r   r   r   r   r   r?   r   r*   r'   )r    r,   r   r   s       r!   testUnknownFieldz+UnknownFieldsAccessorsTest.testUnknownFieldd  st    '')G G//1K 9 9 ;<"22;?BM]''-r$   c                    t        j                         }|j                  | j                         | j	                  t        t        j                  |            d       | j	                  |j                         | j                         y )Nr   )	r   TestEmptyMessageWithExtensionsr   r   r*   r2   r   r?   r   r+   s     r!   testUnknownExtensionsz0UnknownFieldsAccessorsTest.testUnknownExtensionsm  sc    99;GD001S77@A2FW..0$2F2FGr$   N)r_   r`   ra   r"   ry   r   r   r   r   r   unittestskipIfsysversion_infomajorminorr   r   r   r   rb   r$   r!   rd   rd      s    =D?*31jH
041 8??C$$**C,<,<,B,BCfL57M7M$02.Hr$   rd   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
UnknownEnumValuesTestc                    t         j                  j                  | _        t        j                         | _        t         j                  j
                  | j                  _        | j                  j                  j                  t         j                  j
                  t         j                  j                  g       | j                  j                  j                  t         j                  j
                  t         j                  j                  g       | j                  j                         | _        t        j                         | _        | j                  j                  | j                         y r   )r
   TestEnumValuesr   r   r,   ZEROr   r   extendONEpacked_nested_enumr   message_dataTestMissingEnumValuesmissing_messager   r   s    r!   r"   zUnknownEnumValuesTest.setUpw  s    -<<GGDO*99;DL 	 ..33 	LL%LL%%,,..33..22.
  	LL##**..33..22,
  668D2HHJD(():):;r$   c                 n   | j                   j                  |   }t        j                  | j                        }| j                  |t        j                         d}|D ]  }|j                  |j                  k(  s|dz  }|j                  t         j                  j                  k(  r| j                  |j                  |       f| j                  ||j                          |j                  t         j                  j                  k(  r| j                  |t        |             y | j                  |d       y )Nr   r6   )r   ri   r   r?   r   assertIsInstancer@   rm   r   r   r   r}   r'   r*   r2   )r    rq   rr   rs   rG   countfields          r!   r   z'UnknownEnumValuesTest.CheckUnknownField  s    55d;&66t7K7KL+^-K-KLE" 7			/66	6
!!Z%?%?%N%NN
--

N
3


>5::
67 !;!;!J!JJ
uc.12
ua r$   c                     t        j                         }d|_        t        j                         }|j	                  |j                                | j                  |j                  d       y )Nblahr   )r
   
JustStringdummyr   r   r   r*   r   )r    just_stringmissings      r!   !testUnknownParseMismatchEnumValuez7UnknownEnumValuesTest.testUnknownParseMismatchEnumValue  sW    )446KK%446G K99;< 	W1115r$   c                 b   | j                  | j                  j                  d             | j                  | j                  j                  d       | j                  j                         }| j                  j                  d       | j                  | j                  j                         |       y )Nr   r|   )assertFalser   HasFieldr*   r   r   rO   )r    rE   s     r!   testUnknownEnumValuez*UnknownEnumValuesTest.testUnknownEnumValue  s    T))223IJKT))>>B%%779J##$:;T));;=zJr$   c                 P    | j                  g | j                  j                         y r   )r*   r   r   r   s    r!   testUnknownRepeatedEnumValuez2UnknownEnumValuesTest.testUnknownRepeatedEnumValue  s    R--BBCr$   c                 P    | j                  g | j                  j                         y r   )r*   r   r   r   s    r!   testUnknownPackedEnumValuez0UnknownEnumValuesTest.testUnknownPackedEnumValue  s    R--@@Ar$   c                 \   t        j                  | j                        }| j                  t	        |      d       | j                  d| j                  j                         | j                  d| j                  j                         | j                  d| j                  j                         y )N   r   r   r   )
r   r?   r   r*   r2   r   r,   r   r   r   r   s     r!   !testCheckUnknownFieldValueForEnumz7UnknownEnumValuesTest.testCheckUnknownFieldValueForEnum  s    &66t7K7KLS*+Q/1<<<<>1<<<<>/<<::<r$   c                     t        j                         }|j                  | j                  j	                                | j                  | j                  |       y r   )r
   r   r   r   r   r*   r,   )r    new_messages     r!   testRoundTripz#UnknownEnumValuesTest.testRoundTrip  sA    )88:K 4 4 F F HIT\\;/r$   N)r_   r`   ra   r"   r   r   r   r   r   r   r   rb   r$   r!   r   r   t  s-    <2!"6KDB<0r$   r   __main__)__doc__
__author__r   r   google.protobufr   r   r   r   google.protobuf.internalr   r   r	   r
   r   r   r   r   r   r   r   ImportErrorTestCaser   rd   r   r_   mainrb   r$   r!   <module>r      s   @ Q0
 
  , - ( 5 7 , ? < . 5 2 0 & * iP)) iP iPX GH!2!2 GH GHT T0H-- T0 T0n z(--/ k  s   "C* *C21C2