
    %
i!                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ  G d dej                  Zedk    r ej                     dS dS )    N)TestSkipped)	constants)EnsureDispatchc                   ~    e Zd Zd Zd ZddZddZd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )	TestStuffc                    d| _         d | _        d x| _        | _        	 t          j        d         }n# t          $ r t          j                    j	        dz   | _        dD ]+}	 t          d|z             } n$# t          j        $ r Y (w xY wt          d          |                    d          }|                    | j        t           j        t           j                  }|                                 d                    | j                  }Y nw xY wt+          j        |          | _        | j                                        | _        	 | j                            d	| j         z             n!# t*          j        t*          j        f$ r Y nw xY w|                     | j                            d
| j         z            d           d S )Npywin32test_usersTEST_ODBC_CONNECTION_STRINGz.mdb)z.36z.35z.30zDAO.DBEnginezCan't find a DB enginer   z<Driver={{Microsoft Access Driver (*.mdb)}};dbq={};Uid=;Pwd=;drop table %sa  create table %s (
                    userid varchar(25),
                    username varchar(25),
                    bitfield bit,
                    intfield integer,
                    floatfield float,
                    datefield datetime,
                    rawfield varbinary(100),
                    longtextfield memo,
                    longbinaryfield image
            ))	tablenamedb_filenameconncurosenvironKeyErrortempfileNamedTemporaryFilenamer   	pythoncom	com_errorr   
WorkspacesCreateDatabaser   dbLangGeneral	dbEncryptCloseformatodbccursorexecuteerror	progErrorassertEqual)selfconn_strsuffixdbe	workspacenewdbs         C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32/test/test_odbc.pysetUpzTestStuff.setUp   s   ,##	DH	z"?@HH 	 	 	':<<AFJD 0 < <(&)@AACE *   D "":;;;q))I,, )"99;N E KKMMM OUU$  HH-	8 Ih''	9##%%	H04>ABBBB
DN+ 	 	 	D	 	H
 .!  	
 	
 	
 	
 	
sF   1 .D A42D4BDBBDD	"E, ,F
	F
c                    | j         	 | j                             d| j        z             n@# t          j        t          j        f$ r"}t          d| j        z  |           Y d }~nd }~ww xY w| j                                          d | _         | j         | j                                         d | _        | j	        -	 t          j        | j	                   d S # t          $ r Y d S w xY wd S )Nr   zFailed to delete test table %s)r   r!   r   r   r"   r#   printcloser   r   r   unlinkOSError)r%   whys     r+   tearDownzTestStuff.tearDownR   s   8N  !4t~!EFFFFJ/ N N N6GMMMMMMMMN HNNDH9 IOODI'	$*+++++    ('s'   ", A)A$$A);C 
C$#C$FrankFrank Millmanc                    |                      | j                            d| j        z  ||g          d           |                      | j                            d| j        z  |                                g          d           |                      | j                            d| j        z  |                                g          d           d S )Nz:insert into %s (userid, username)             values (?,?)   -select * from %s             where userid = ?r   /select * from %s             where username = ?r$   r   r!   r   lowerr%   useridusernames      r+   test_insert_selectzTestStuff.test_insert_selectd       H.! "	  	
 	
 	
 	H.!  	  	
 	
 	
 	H .! !!"	  	
 	
 	
 	
 	
    c                    |                      | j                            d| j        z  ||g          d           |                      | j                            d| j        z  |                                g          d           |                      | j                            d| j        z  |                                g          d           d S )Nz9insert into %s (userid, username)            values (?,?)r7   r8   r   r9   r:   r<   s      r+   test_insert_select_unicodez$TestStuff.test_insert_select_unicode   r@   rA   c                 :    d}d}|                      ||           d S )Nu   t-àòu   test-àò name)rC   r<   s      r+   test_insert_select_unicode_extz(TestStuff.test_insert_select_unicode_ext   s(    '''99999rA   c           
         t          d          D ]}| j                            d| j        z             |                     | j                            d| j         d| dd|g          d           | j                            d| d	| j         d
dg           | j                                        }|                     dt          |                     |d         }|                     |d         |           d S )Nd   z#delete from %s where userid='Frank'zinsert into z
 (userid, z) values (?,?)r4   r7   zselect z from z where userid = ?r   )ranger   r!   r   r$   	fetchmanylen)r%   	fieldNamevaluexrowsrows         r+   	_test_valzTestStuff._test_val   s!   s 	, 	,AHBT^STTT  V4>VVYVVVe$     HL)LL4>LLL	   8%%''DQD		***q'CSVU++++!	, 	,rA   c                 ^    |                      dd           |                      dd           d S )Nbitfieldr7   r   rP   r%   s    r+   testBitzTestStuff.testBit   s0    z1%%%z1%%%%%rA   c                     |                      dd           |                      dd           |                      dt          j                   d S )Nintfieldr7   r   )rP   sysmaxsizerT   s    r+   testIntzTestStuff.testInt   sF    z1%%%z1%%%z3;/////rA   c                 ^    |                      dd           |                      dd           d S )N
floatfieldg)\(?r   rS   rT   s    r+   	testFloatzTestStuff.testFloat   s0    |T***|Q'''''rA   c                 2    |                      dd           d S )Nr>   foorS   rT   s    r+   testVarcharzTestStuff.testVarchar   s     	z5)))))rA   c                 8    |                      dddz             dS )zETest a long text field in excess of internal cursor data size (65536)longtextfieldabcp NrS   rT   s    r+   testLongVarcharzTestStuff.testLongVarchar   s     66666rA   c                 R    |                      dt          ddz                       dS )zDTest a long raw field in excess of internal cursor data size (65536)longbinaryfields    rd   NrP   
memoryviewrT   s    r+   testLongBinaryzTestStuff.testLongBinary   s*    (*Y5F*G*GHHHHHrA   c                 L    |                      dt          d                     d S )Nrawfields    rh   rT   s    r+   testRawzTestStuff.testRaw   s%    z:.A#B#BCCCCCrA   c                 2    |                      dd           dS )zTest a unicode character that would be mangled if bound as plain character.
        For example, previously the below was returned as ascii 'a'
        r>   u   āNrS   rT   s    r+   test_widecharzTestStuff.test_widechar   s     	z8,,,,,rA   c                 X    dd l }dD ]"} |j         | }|                     d|           #d S )Nr   ))il           '   ;   	datefield)datetimerP   )r%   rw   vds       r+   	testDateszTestStuff.testDates   sJ    . 	+ 	+A!!1%ANN;****	+ 	+rA   c                    |                      | j                            d| j        z  ddg          d           |                      | j                            d| j        z  dg          d           |                      | j                            d| j        z            d           |                      t	          | j                                        d                   d           d S )	N-insert into %s (userid,username) values (?,?)r4   r5   r7   zupdate %s set username = ?select * from %sr      r$   r   r!   r   rJ   fetchonerT   s    r+   test_set_nonzero_lengthz!TestStuff.test_set_nonzero_length   s    H?$.P/*  	
 	
 	
 	H9DNJWIVV	
 	
 	
 	))*<t~*MNNPQRRRTX..00344a88888rA   c                 d   |                      | j                            d| j        z  ddg          d           |                      | j                            d| j        z            d           |                      t	          | j                                        d                   d           d S )Nr|   s   Frank r7   r}   r   r   rT   s    r+   test_set_zero_lengthzTestStuff.test_set_zero_length   s    H?$.P2  	
 	
 	
 	))*<t~*MNNPQRRRTX..00344a88888rA   c                 d   |                      | j                            d| j        z  ddg          d           |                      | j                            d| j        z            d           |                      t	          | j                                        d                   d           d S )Nr|   r4   r   r7   r}   r   r   rT   s    r+   test_set_zero_length_unicodez&TestStuff.test_set_zero_length_unicode   s    H?$.P"  	
 	
 	
 	))*<t~*MNNPQRRRTX..00344a88888rA   N)r4   r5   )__name__
__module____qualname__r,   r3   r?   rC   rE   rP   rU   rZ   r]   r`   re   rj   rm   ro   rz   r   r   r    rA   r+   r   r      s3       ?
 ?
 ?
B  $
 
 
 
:
 
 
 
:: : :
, , ,&& & &0 0 0
( ( (* * *
7 7 7I I ID D D- - -+ + +9 9 9	9 	9 	9	9 	9 	9 	9 	9rA   r   __main__)r   rX   r   unittestr   r   pywin32_testutilr   win32com.clientr   win32com.client.gencacher   TestCaser   r   mainr   rA   r+   <module>r      s    				 



        ( ( ( ( ( ( % % % % % % 4 3 3 3 3 3t9 t9 t9 t9 t9! t9 t9 t9n zHMOOOOO rA   