
    	h                         S SK r S SKrS SKrS SKr " S S5      r " S S5      r " S S\5      r " S S	\R                  R                  R                  5      r\S
:X  a  \ R                  " 5         gg)    Nc                   `    \ rS rSr/ SQr\R                  /rS rS r	S r
S rS rS rS	 rS
rg)Persists   )
GetClassIDIsDirtyLoadSave
GetSizeMaxInitNewc                      SU l         SU l        g )Ns   abcdefg   datadirtyselfs    lC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32com/test/testStreams.py__init__Persists.__init__   s    	
    c                 "    [         R                  $ N)	pythoncomIID_NULLr   s    r   r   Persists.GetClassID   s    !!!r   c                     U R                   $ r   )r   r   s    r   r   Persists.IsDirty   s    zzr   c                 0    UR                  S5      U l        g )N   )Readr   )r   streams     r   r   Persists.Load   s    KKO	r   c                 X    UR                  U R                  5        U(       a  SU l        g g Nr   )Writer   r   )r   r!   
clearDirtys      r   r	   Persists.Save    s!    TYYDJ r   c                     g)Ni    r   s    r   r
   Persists.GetSizeMax%   s    r   c                     g r   r)   r   s    r   r   Persists.InitNew(   s    r   r   N)__name__
__module____qualname____firstlineno___public_methods_r   IID_IPersistStreamInit_com_interfaces_r   r   r   r   r	   r
   r   __static_attributes__r)   r   r   r   r      s>     "889"$
r   r   c                   N    \ rS rSr/ SQr\R                  /rS rS r	S r
S rSrg)	Stream,   )r    r%   Seekc                     Xl         SU l        g r$   r   indexr   r   s     r   r   Stream.__init__0   s    	
r   c                 |    U R                   U R                  U R                  U-    nU =R                  U-  sl        U$ r   r:   )r   amountresults      r   r    Stream.Read4   s2    4::

V(;<

f
r   c                 2    Xl         SU l        [        U5      $ r$   )r   r;   lenr<   s     r   r%   Stream.Write9   s    	
4yr   c                    U[         R                  :X  a  Xl        OsU[         R                  :X  a  U =R                  U-  sl        OIU[         R                  :X  a  [        U R                  5      U-   U l        O[        S[        U5      -   5      eU R                  S:  a  SU l        U R                  $ [        U R                  [        U R                  5      5      U l        U R                  $ )NzUnknown Seek type: r   )
r   STREAM_SEEK_SETr;   STREAM_SEEK_CURSTREAM_SEEK_ENDrC   r   
ValueErrorstrmin)r   distorigins      r   r8   Stream.Seek>   s    Y...Jy000JJ$Jy000TYY$.DJ2S[@AA::>DJ zz TZZTYY8DJzzr   r:   N)r-   r.   r/   r0   r1   r   IID_IStreamr3   r   r    r%   r8   r4   r)   r   r   r6   r6   ,   s+    0!--.

r   r6   c                       \ rS rSrSrS rSrg)	BadStreamN   zoPyGStream::Read could formerly overflow buffer if the python implementation
returned more data than requested.
c                     SUS-   -  $ )N   xr   r)   )r   r?   s     r   r    BadStream.ReadS   s    vz""r   r)   N)r-   r.   r/   r0   __doc__r    r4   r)   r   r   rQ   rQ   N   s    #r   rQ   c                   0    \ rS rSrSS jrS rS rS rSrg)	
StreamTestW   Nc                 j   Uc  UnUR                  U5        UR                  S[        R                  5        UR	                  [        U5      5      nU R                  X5        UR                  S[        R                  5        UR	                  [        U5      S-
  5      nU R                  USS U5        g )Nr   r      )r%   r8   r   rF   r    rC   assertEqual)r   r   write_streamread_streamgots        r   
_readWriteStreamTest._readWriteX   s    &K4 I556s4y)#I556s4y1}-aS)r   c                    Sn[        U5      n[        5       nUR                  U5        UR                  US5        U R	                  UR
                  U5        [        R                  R                  R                  U[        R                  5      n[        R                  R                  R                  U[        R                  5      nU R                  XU5        U R                  XU5        U R                  XU5        U R                  XU5        U R                  SXD5        UR                  U5        UR                  U5        UR                  US5        U R	                  UR
                  U5        g )Ns   abcdefghijklmnopqrstuvwxyzr   s   string with a NULL)r6   r   r   r	   r]   r   win32comserverutilwrapr   rO   r2   ra   r%   )r   mydatasps2p2s         r   testitStreamTest.testitc   s	   . 6NJ	q		q!( __!!&&q)*?*?@__!!&&q)*J*JK1%2&A&B'.7	

A(r   c                     [        S5      n[        R                  R                  R	                  U[
        R                  5      nUR                  S[
        R                  5        g )Ns   yol        )	r6   rd   re   rf   rg   r   rO   r8   rF   )r   ri   s     r   testseekStreamTest.testseek   sA    5MOO  %%a)>)>?	{I556r   c                    [         R                  R                  R                  5       u  p[	        S5      n[         R
                  R                  R                  U[        R                  5      nU R                  [        R                  UR                  S5        [         R                  R                  R                  U5        U R                  [        U5      S5        U R                  US   R                   R#                  S5      5        g )NzCheck for buffer overflow
   r   r   zpythoncom error)rd   testrf   setup_test_loggerrQ   re   rg   r   rO   assertRaises	com_errorr    restore_test_loggerr]   rC   
assertTruemsg
startswith)r   recordsold_log	badstream
badstream2s        r   
testerrorsStreamTest.testerrors   s    #==--??A9:	__))..y):O:OP
)--zC..w7Wq)
112CDEr   r)   r   )	r-   r.   r/   r0   ra   rm   rp   r   r4   r)   r   r   rX   rX   W   s    	*)87
Fr   rX   __main__)unittestr   win32com.server.utilrd   win32com.test.utilr   r6   rQ   rt   rf   TestCaserX   r-   mainr)   r   r   <module>r      sj       ! !H D# #8F##,, 8Fv zMMO r   