
                             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ZddlmZ ddl	m
c mZ  G d d	ej                        Zy)
Unit tests for FilePart class.    )absolute_import)print_function)division)unicode_literalsN)FilePartc                   "    e Zd ZdZd Zd Zd Zy)TestFilePartr   c                     d}d}| j                  ||      }d}d}t        |||      }| j                  ||j                  j	                                | j                  d|j	                                y )N	test_telld   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx	file_namecontents   2   r   )CreateTempFiler   assertEqual_fptell)selffilenamer   fpathpart_length	start_posfps          -platform/gsutil/gslib/tests/test_file_part.pyr   zTestFilePart.test_tell    si    HH(XFEKI	%K	0BY.Q	"    c                    d}d}d}d}| j                  ||      }t        |||      }d}|j                  |       | j                  ||z   |j                  j                                | j                  ||j                                |j                  |t        j                         | j                  |d|z  z   |j                  j                                | j                  d|z  |j                                |j                  | t        j                         | j                  ||z   |z
  |j                  j                                | j                  ||z
  |j                                |j                  d	t        j                         | j                  ||z   d	z   |j                  j                                | j                  |d	z   |j                                y
)zTests seeking in a FilePart.	test_seekr   r   r   r   
   )whence      N)	r   r   seekr   r   r   osSEEK_CURSEEK_END)r   r   r   r   r   r   r   offsets           r   r    zTestFilePart.test_seek*   s~   HHKI(XFE	%K	0BF GGFOY'7VRWWY' GGF2;;G'YV+RVV[[];QZ+ GGVGBKKG(Y,v5rvv{{}E[6)27795 GGAbkkG"Y,q0"&&++-@[1_bggi0r   c                 ^   d}t        t        d            }d}d}| j                  ||      }t        |||      }|j	                         }| j                  ||||z    |       |j                  d       d}|j	                  |      }	| j                  ||||z    |	       |j	                  ||z
        }
| j                  |||z   ||z    |
       | j                  ||||z    |	|
z          |j	                  d      }| j                  d	|       |j	                         }| j                  d	|       y
)z-Tests various reaad operations with FilePart.	test_read   r   r   r   r   r!   d   r   N)	bytearrayranger   r   readr   r%   )r   r   r   r   r   r   r   
whole_filer)   partial_fileremaining_file
empty_files               r   r+   zTestFilePart.test_readH   s=   Hs$HKI(XFE 
%K	0BJXi[)@BJO GGAJF776?LXiV);=|L WW[612NXy61I4KM#%Xi[)@B!N24 JS*%JS*%r   N)__name__
__module____qualname____doc__r   r    r+    r   r   r
   r
      s    &#1<&r   r
   )r8   
__future__r   r   r   r   r&   gslib.file_partr   gslib.tests.testcaseteststestcaseGsUtilUnitTestCaser
   r9   r   r   <module>r@      s6    % & %  ' 	 $ ' 'J&8.. J&r   