
    ZTh                     J    d dl mZ d dlmZmZmZ d dlmZmZ  G d de      Z	y)    )TestCase)MetadataKeyMetadataKeyTypeMetadataValue)metadata_dict_to_pbmetadata_pb_to_dictc                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	TestMetadataz5Tests for metadata wrapping and unwrapping functions.c                    ddddddd}t        |      }| j                  t        |      d       |D ci c]  }|j                  j                  | }}| j                  |d	   j                  j
                  d
       | j                  |d	   j                  d       | j                  |d   j                  d       | j                  |d   j                  j
                  d       | j                  |d   j                  d       | j                  |d   j                  d       | j                  |d   j                  d       | j                  |d   j                  j
                  d       | j                  |d   j                         y c c}w )Ntest*   Q	@Tr    
string_key
number_key	float_keybool_key
zero_valueempty_string   r      r   r            E@r   r           r      )
r   assertEquallenkeynametypestring_valuenumber_value
assertTrueboolean_value)selfmetadataresultmdmetadata_dicts        d/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/sift_py/_internal/metadata_test.py$test_metadata_dict_to_pb_mixed_typesz1TestMetadata.test_metadata_dict_to_pb_mixed_types   sl    !
 %X. 	Va( 4::Rb:: 	|488==qA|4AA6J~6CCRH 	|488==qA|4AA4H{3@@$G|4AA3G 	z266;;Q?j1??@ ;s   F	c                     g dddid d}|j                         D ]U  \  }}| j                  t              5 }t        ||i       d d d        | j	                  dt        j                               W y # 1 sw Y   1xY w)N)r   r   r   nestedvalue)list_keydict_keynone_keyzUnsupported metadata value type)itemsassertRaises
ValueErrorr   assertInstr	exception)r&   invalid_metadatar   r/   contexts        r+   %test_metadata_dict_to_pb_invalid_typez2TestMetadata.test_metadata_dict_to_pb_invalid_type.   s     "!7+
 +002 	UJC"":. 2'#S%L12MM;SARAR=ST	U2 2s   A44A=	c           	      n   t        ddddddd      }t        |      }| j                  t        |      d       | j                  |d	   d       | j                  |d
   d       | j                  |d   d       | j	                  |d          | j                  |d   d       | j                  |d   d       y )Nr   r   r   Tr   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r$   r&   wrapped_metadatar(   s      r+   $test_metadata_pb_to_dict_mixed_typesz1TestMetadata.test_metadata_pb_to_dict_mixed_types<   s    .$ !  "	
 %%56 	Va(-v6-t4,d3z*+-s3/4    c                 B    g }t        |      }| j                  |i        y )N)r   r   r=   s      r+   test_metadata_pb_to_dict_emptyz+TestMetadata.test_metadata_pb_to_dict_emptyU   s'     %%56 	$r@   c                 P   t        t        dt        j                        d      t        t        dt        j                        d      g}| j	                  t
              5 }t        |       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)Nduplicate_key)r    r!   first_value)r   r"   second_valuez!Key already exists: duplicate_key)
r   r   r   METADATA_KEY_TYPE_STRINGr4   r5   r   r6   r7   r8   )r&   r>   r:   s      r+   &test_metadata_pb_to_dict_duplicate_keyz3TestMetadata.test_metadata_pb_to_dict_duplicate_key_   s     (/W/W +	 (/W/W ,	
  z* 	2g 01	293w?P?P;QR	2 	2s   "BB%c                 f    ddddddd}t        |      }t        |      }| j                  ||       y )Nr   r   r   Tr   r   r   )r   r   r   )r&   original_metadatawrapped	unwrappeds       r+   test_metadata_roundtripz$TestMetadata.test_metadata_roundtripv   sH     !
 &&78'0	 	$56r@   N)
__name__
__module____qualname____doc__r,   r;   r?   rB   rH   rM    r@   r+   r
   r
      s'    ?!AFU52%S.7r@   r
   N)
unittestr   sift.metadata.v1.metadata_pb2r   r   r   sift_py._internal.metadatar   r   r
   rR   r@   r+   <module>rV      s     U U O~78 ~7r@   