a
    åze  ã                   @   sD   d dl Z d dlZG dd„ de jƒZdd„ Zdd„ Zedkr@eƒ  dS )	é    Nc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú	DumpTestsc                 C   s   t  d¡| _| j ¡ | _d S )Nz:memory:)ÚsqliteÚconnectÚcxÚcursorÚcu©Úself© r
   ú'/usr/lib/python3.9/sqlite3/test/dump.pyÚsetUp   s    zDumpTests.setUpc                 C   s   | j  ¡  d S ©N)r   Úcloser   r
   r
   r   ÚtearDown   s    zDumpTests.tearDownc                    sd   g d¢‰‡fdd„ˆD ƒ ˆj  ¡ }dd„ |D ƒ‰ dgˆ dg ‰‡ ‡‡fdd„ttˆƒƒD ƒ d S )N)
z#CREATE TABLE "index"("index" blob);z"INSERT INTO "index" VALUES(X'01');z3CREATE TABLE "quoted""table"("quoted""field" text);z4INSERT INTO "quoted""table" VALUES('quoted''value');z‚CREATE TABLE t1(id integer primary key, s1 text, t1_i1 integer not null, i2 integer, unique (s1), constraint t1_idx1 unique (i2));z'INSERT INTO "t1" VALUES(1,'foo',10,20);z(INSERT INTO "t1" VALUES(2,'foo2',30,30);ztCREATE TABLE t2(id integer, t2_i1 integer, t2_i2 integer, primary key (id),foreign key(t2_i1) references t1(t1_i1));zrCREATE TRIGGER trigger_1 update of t1_i1 on t1 begin update t2 set t2_i1 = new.t1_i1 where t2_i1 = old.t1_i1; end;z;CREATE VIEW v1 as select * from t1 left join t2 using (id);c                    s   g | ]}ˆ j  |¡‘qS r
   )r   Úexecute©Ú.0Úsr   r
   r   Ú
<listcomp>,   ó    z,DumpTests.CheckTableDump.<locals>.<listcomp>c                 S   s   g | ]}|‘qS r
   r
   r   r
   r
   r   r   .   r   úBEGIN TRANSACTION;úCOMMIT;c                    s    g | ]}ˆ  ˆ| ˆ | ¡‘qS r
   )ÚassertEqual)r   Úi©Zactual_sqlsZexpected_sqlsr	   r
   r   r   1   s   ÿ)r   ÚiterdumpÚrangeÚlen)r	   r   r
   r   r   ÚCheckTableDump   s    
ÿ
ÿzDumpTests.CheckTableDumpc                 C   s`   G dd„ dƒ}|| j _d}d}d||dg}| j |¡ | j |¡ t| j  ¡ ƒ}|  ||¡ d S )Nc                   @   s   e Zd Zdd„ Zdd„ ZdS )z5DumpTests.CheckUnorderableRow.<locals>.UnorderableRowc                 S   s
   || _ d S r   ©Úrow)r	   r   r    r
   r
   r   Ú__init__7   s    z>DumpTests.CheckUnorderableRow.<locals>.UnorderableRow.__init__c                 S   s
   | j | S r   r   )r	   Úindexr
   r
   r   Ú__getitem__9   s    zADumpTests.CheckUnorderableRow.<locals>.UnorderableRow.__getitem__N)Ú__name__Ú
__module__Ú__qualname__r!   r#   r
   r
   r
   r   ÚUnorderableRow6   s   r'   zCREATE TABLE "alpha" ("one");zCREATE TABLE "beta" ("two");r   r   )r   Zrow_factoryr   r   Úlistr   r   )r	   r'   ZCREATE_ALPHAZCREATE_BETAZexpectedZgotr
   r
   r   ÚCheckUnorderableRow4   s    üzDumpTests.CheckUnorderableRowN)r$   r%   r&   r   r   r   r)   r
   r
   r
   r   r      s   &r   c                   C   s   t  t  td¡¡S )NZCheck)ÚunittestZ	TestSuiteZ	makeSuiter   r
   r
   r
   r   ÚsuiteI   s    r+   c                  C   s   t  ¡ } |  tƒ ¡ d S r   )r*   ZTextTestRunnerÚrunr+   )Zrunnerr
   r
   r   ÚtestL   s    r-   Ú__main__)r*   Zsqlite3r   ZTestCaser   r+   r-   r$   r
   r
   r
   r   Ú<module>   s   C