
    3                         d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d de      Z G d d	e      Z	 G d
 de      Z
 G d de      Zy)z6Helper functions for testing calls to the Rewrite API.    )absolute_import)print_function)division)unicode_literalsc                       e Zd Zy)RewriteHaltExceptionN)__name__
__module____qualname__     -platform/gsutil/gslib/tests/rewrite_helper.pyr   r      s    r   r   c                       e Zd ZdZd Zd Zy)HaltingRewriteCallbackHandlerzETest callback handler for intentionally stopping a rewrite operation.c                     || _         y N)_halt_at_byte)selfhalt_at_bytes     r   __init__z&HaltingRewriteCallbackHandler.__init__   s
    %Dr   c                 8    || j                   k\  rt        d      y)z=Forcibly exits if the operation has passed the halting point.zArtificially halting rewriteN)r   r   r   total_bytes_rewrittenunused_total_sizes      r   callz"HaltingRewriteCallbackHandler.call"   s!     2 22 !?@@ 3r   Nr	   r
   r   __doc__r   r   r   r   r   r   r      s    M&Ar   r   c                       e Zd ZdZd Zd Zy)"EnsureRewriteResumeCallbackHandlerz?Test callback handler for ensuring a rewrite operation resumed.c                     || _         y r   )_required_byter   required_bytes     r   r   z+EnsureRewriteResumeCallbackHandler.__init__+   s
    'Dr   c                 Z    || j                   k  rt        d|d| j                   d      y)z9Exits if the total bytes rewritten is less than expected.zRewrite did not resume; z bytes written, but ( bytes should have already been written.N)r!   r   r   s      r   r   z'EnsureRewriteResumeCallbackHandler.call/   s4     3 33  !$"5"578 8 4r   Nr   r   r   r   r   r   (   s    G(8r   r   c                       e Zd ZdZd Zd Zy)#EnsureRewriteRestartCallbackHandlerzATest callback handler for ensuring a rewrite operation restarted.c                      || _         d| _        y )NF)r!   _got_restart_bytesr"   s     r   r   z,EnsureRewriteRestartCallbackHandler.__init__;   s    'D#Dr   c                     | j                   s3|| j                  k  rd| _         yt        d|d| j                  d      y)z<Exits if the total bytes rewritten is greater than expected.TzRewrite did not restart; z! bytes written, but no more than r%   N)r)   r!   r   r   s      r   r   z(EnsureRewriteRestartCallbackHandler.call@   sG    ""	$"5"5	5 #'" #D$7$79: 	: #r   Nr   r   r   r   r'   r'   8   s    I$
:r   r'   N)r   
__future__r   r   r   r   	Exceptionr   objectr   r   r'   r   r   r   <module>r.      sH    = & %  '9 
AF 
A8 8 :& :r   