
    	                     2   d 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	 ej                   ej                  ej                  j                  ej                  j                  ej                  j                         G d dej                                       Zy	)
z.Cloud Pub/Sub message transforms test command.    )message_transforms)base)flags)util)http_encodingc                   &    e Zd ZdZed        Zd Zy)Testz1Tests message transforms against a given message.c                 .    t        j                  |        y )N)r   AddTestMessageTransformFlags)parsers    -lib/surface/pubsub/message_transforms/test.pyArgsz	Test.Args   s    	&&v.    c                 T   t        j                         }t        |dd       }t        j                  t        |dd       |j
                        }t        |dd       }t        |dd       }|r$|j                  j                  j                         }t        |dd       }|r$|j                  j                  j                         }|j                  t        j                         t        j                  |      ||||      }g }	|j                  D ]  }
|
j                  x}rzi }|j!                         D ]S  }t        ||j"                        }|s|j"                  dk(  r|j$                  j'                         }|||j"                  <   U |	j)                  |       |	j)                  |
        |	S )Nmessage	attributemessage_transforms_filetopicsubscription)project_refmessage_body
attributesr   	topic_refsubscription_refdata)r   MessageTransformsClientgetattrr   ParseAttributesmessagesCONCEPTSr   Parser   r	   ParseProjectr   EncodetransformedMessagestransformedMessage
all_fieldsnamer   decodeappend)selfargsclientr   r   r   r   r   resultoutputtransformed_messager   message_copyfieldvalues                  r   RunzTest.Run#   s   779F4D1L%%k4(&//J &d,EtLD'4(Emm!!'')e46L]]//557l[[%%'")),7 7%  F F%99'::	:	:'')E'5::.%zzV#ll))+e',L$ * 	l#)*  : Mr   N)__name__
__module____qualname____doc__staticmethodr   r3    r   r   r	   r	      s    
 :/ /$r   r	   N)r7   googlecloudsdk.api_lib.pubsubr   googlecloudsdk.callioper   !googlecloudsdk.command_lib.pubsubr   r   googlecloudsdk.core.utilr   DefaultUniverseOnlyReleaseTracksReleaseTrackGABETAALPHACommandr	   r9   r   r   <module>rE      s~    5 < ( 3 2 2 $++00$2C2C2I2I+4<< + +r   