B
    2*™\i  ã               @   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:)ÚsqliteZconnectÚcxÚcursorÚcu)Úself© r   ú<C:\ALexclude\prg\programme\Python37\Lib\sqlite3\test\dump.pyÚsetUp   s    zDumpTests.setUpc             C   s   | j  ¡  d S )N)r   Úclose)r   r   r   r	   ÚtearDown   s    zDumpTests.tearDownc          
      st   ddddddddd	d
g
‰‡fdd„ˆD ƒ ˆj  ¡ }dd„ |D ƒ‰ dgˆ dg ‰‡ ‡‡fdd„ttˆƒƒD ƒ d S )Nz#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Ús)r   r   r	   ú
<listcomp>,   s    z,DumpTests.CheckTableDump.<locals>.<listcomp>c             S   s   g | ]}|‘qS r   r   )r   r   r   r   r	   r   .   s    zBEGIN TRANSACTION;zCOMMIT;c                s    g | ]}ˆ  ˆ| ˆ | ¡‘qS r   )ÚassertEqual)r   Úi)Úactual_sqlsÚexpected_sqlsr   r   r	   r   1   s   )r   ÚiterdumpÚrangeÚlen)r   r   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 )N)Úrow)r   r   r   r   r   r	   Ú__init__7   s    z>DumpTests.CheckUnorderableRow.<locals>.UnorderableRow.__init__c             S   s
   | j | S )N)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");zBEGIN TRANSACTION;zCOMMIT;)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 )N)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