Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/pymysql/tests/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/pymysql/tests/__pycache__/test_basic.cpython-35.pyc



s_�We8�@s�ddlZddlZddlZddlZddlmZddlmZddlZddl	m
Z
ddlmZdddgZ
Gd	d�de
j�ZGd
d�de
j�ZGdd�de
j�ZdS)�N)�SkipTest)�util)�base)�ProgrammingError�TestConversion�
TestCursor�TestBulkInsertsc@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)rcCsh|jd}|j�}|jd�z-dd"ddddd	j|j�tjd
dd�tjdd
dddd�tjd
d�tjdd�tj	�f}|jd|�|jd�|j
�}|jtj
d�|d�|j|dd�|dd��|jtjdd|djd|dj�|d�|jtj|d#dd��|d$�|jd�|jddgd�|jd�|j
�}|jtdgd�|�|jd�xuttttfD]a}|jd�|ddg�}|jd|f�|j�}|jd'|�|jd�q�WWd|jd!�XdS)(z test every data type rz�create table test_datatypes (b bit, i int, l bigint, f real, s varchar(32), u varchar(32), bb blob, d date, dt datetime, ts timestamp, td time, t time, st datetime)T�l2}rg������@z
hello'" worldu
Españolzbinarydatai��i�����-�9��� zeinsert into test_datatypes (b,i,l,f,s,u,bb,d,dt,td,t,st) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)z6select b,i,l,f,s,u,bb,d,dt,td,t,st from test_datatypes��
�<Nzdelete from test_datatypes�z>insert into test_datatypes (i, l) values (2,4), (6,8), (10,12)z5select l from test_datatypes where i in %s order by i��zdrop table test_datatypes������r�r�r)rr)�connections�cursor�execute�encode�charset�datetime�date�	timedelta�time�	localtime�fetchone�assertEqualr�int2byte�hour�minute�tuple�list�set�	frozenset�fetchall)�self�conn�c�v�rZseq_type�seq�r7�I/opt/alt/python35/lib/python3.5/site-packages/pymysql/tests/test_basic.py�test_datatypess4

{
$:+



zTestConversion.test_datatypescCs�|jd}|j�}|jd�zI|jddddddd	i�|jd
�|jd
|j��Wd|jd�XdS)z test dict escaping rz8create table test_dict (a integer, b integer, c integer)z:insert into test_dict (a,b,c) values (%(a)s, %(b)s, %(c)s)�ar�br
r3r	zselect a,b,c from test_dictNzdrop table test_dict)rr
r	)rrrr(r')r1r2r3r7r7r8�	test_dict:s

"
zTestConversion.test_dictcCs{|jd}|j�}|jd�d}z:|jd|�|jd�|j|f|j��Wd|jd�XdS)Nrzcreate table test_dict (a text)zI am a test stringz%insert into test_dict (a) values (%s)zselect a from test_dictzdrop table test_dict)rrrr(r')r1r2r3�
test_valuer7r7r8�test_stringFs


zTestConversion.test_stringcCs{|jd}|j�}|jd�d}z:|jd|�|jd�|j|f|j��Wd|jd�XdS)Nrz"create table test_dict (a integer)i90z%insert into test_dict (a) values (%s)zselect a from test_dictzdrop table test_dict)rrrr(r')r1r2r3r=r7r7r8�test_integerRs


zTestConversion.test_integercCs�tttd��d�}|jd}|j|dd�|j��A}|jd|f�|jd�|j||j�d�WdQRXdS)	ztest binary data�rr�	test_blobzcreate table test_blob (b blob)z%insert into test_blob (b) values (%s)zselect b from test_blobN)	�bytes�	bytearray�ranger�safe_create_tablerrr(r')r1�datar2r3r7r7r8rA^s


zTestConversion.test_blobcCsc|jd}|j�}|jd�|jd|j��|jd�|jd|j��dS)z' test conversion of null, empty string rzselect null,''N�zselect '',null)NrG)rGN)rrrr(r')r1r2r3r7r7r8�test_untypedjs


zTestConversion.test_untypedc
Cs�|jd}|j�}|jd�|jtjdd�tjdd�tjddd�tjdd�tjdd�tjddd�tjdd�f|j��dS)z test timedelta conversion rz�select time('12:30'), time('23:12:59'), time('23:12:59.05100'), time('-12:30'), time('-23:12:59'), time('-23:12:59.05100'), time('-00:30')iȯi{Fi8�iN)rrrr(r"r$r')r1r2r3r7r7r8�test_timedeltass

zTestConversion.test_timedeltacCs�|jd}|j|d�s+td��|j�}tjdddd	d	d	d
�}|jd�z@|jdd
|f�|jd�|j|f|j��Wd|jd�XdS)z( test datetime conversion w microsecondsrrrrz,target backend does not support microsecondsi��r�	i:�z3create table test_datetime (id int, ts datetime(6))z)insert into test_datetime values (%s, %s)rzselect ts from test_datetimeNzdrop table test_datetime)rrr)r�mysql_server_isrrr"rr(r')r1r2r3�dtr7r7r8�test_datetime_microseconds�s
!


z)TestConversion.test_datetime_microsecondsN)�__name__�
__module__�__qualname__r9r<r>r?rArHrIrNr7r7r7r8rs'	c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
rcCsn|jd}|j�}|jd�z3d}|jd|f�|jd|j��Wd|jd�XdS)z  test a fetchone() with no rows rz$create table test_nr (b varchar(32))�pymysqlz#insert into test_nr (b) values (%s)Nzdrop table test_nr)rrrr(r')r1r2r3rFr7r7r8�test_fetch_no_result�s

zTestCursor.test_fetch_no_resultcCs�|jd}|j�}zy|jd�x*tdd�D]}|jd|f�q9W|jd�|j�\}|jttdd��|�Wd|jd�XdS)z test aggregate functions rz(create table test_aggregates (i integer)rz+insert into test_aggregates (i) values (%s)z"select sum(i) from test_aggregatesNzdrop table test_aggregates)rrrrDr'r(�sum)r1r2r3�ir5r7r7r8�test_aggregates�s


#zTestCursor.test_aggregatescCs�|jd}|j�}|j|dd�|jd�|jd�|jdd
�|jdgt|j���|j�dS)z test a single tuple rZmystuffz-create table mystuff (id integer primary key)z#insert into mystuff (id) values (1)z#insert into mystuff (id) values (2)z%select id from mystuff where id in %srN�r)rW)r)rrrErr(r-r0�close)r1r2r3r7r7r8�test_single_tuple�s


zTestCursor.test_single_tuplecCs
|jdj�}d|d<tj|�}|j|d
�sJtd��|j|dd�|j�}d	}|jd
|f�|jd�|j	�d}|j
tj|�tj|��|jd|f�|j	�d}|j
tj|�tj|��dS)Nr�utf8mb4r!rr
z*JSON type is not supported on MySQL <= 5.6�	test_jsonz]create table test_json (
    id int not null,
    json JSON not null,
    primary key (id)
);u{"hello": "こんにちは"}z2INSERT INTO test_json (id, `json`) values (42, %s)z,SELECT `json` from `test_json` WHERE `id`=42zSELECT CAST(%s AS JSON) AS x)rr
r)
Z	databases�copyrR�connectrLrrErrr'r(�json�loads)r1�argsr2�curZjson_str�resr7r7r8r[�s 

"zTestCursor.test_jsonN)rOrPrQrSrVrYr[r7r7r7r8r�s6
csveZdZejjZ�fdd�Zdd�Zdd�Z	dd�Z
d	d
�Zdd�Zd
d�Z
�S)rcsPtt|�j�|jd|_}|j|j�}|j|dd�dS)NrZ
bulkinsertz]CREATE TABLE bulkinsert
(
id int(11),
name char(20),
age int,
height int,
PRIMARY KEY (id)
)
)�superr�setUprr2r�cursor_typerE)r1r2r3)�	__class__r7r8rds
	zTestBulkInserts.setUpcCsR|jd}|j�}|jd�|j�}|jt|�t|��dS)Nrz,SELECT id, name, age, height from bulkinsert)rrrr0r(�sorted)r1rFr2r�resultr7r7r8�_verify_records!s


zTestBulkInserts._verify_recordscCso|jd}|j�}dddg}|jd
|�|j|jtd��|jd�|j|�dS)Nr�bob��{r�jim�8rr
�fred�d�zCinsert into bulkinsert (id, name, age, height) values (%s,%s,%s,%s)siinsert into bulkinsert (id, name, age, height) values (0,'bob',21,123),(1,'jim',56,45),(2,'fred',100,180)�commit)rrjrkrl)rrmrnr)r
rorprq)rr�executemanyr(�_last_executedrCrri)r1r2rrFr7r7r8�test_bulk_insert(s
		

z TestBulkInserts.test_bulk_insertcCsu|jd}|j�}dddg}|jd
|�|j|jj�td��|jd�|j|�dS)Nrrjrkrlrrmrnrr
rorprqzJinsert
into bulkinsert (id, name,
age, height)
values (%s,
%s , %s,
%s )
 sxinsert
into bulkinsert (id, name,
age, height)
values (0,
'bob' , 21,
123 ),(1,
'jim' , 56,
45 ),(2,
'fred' , 100,
180 )rr)rrjrkrl)rrmrnr)r
rorprq)	rrrsr(rt�striprCrri)r1r2rrFr7r7r8�$test_bulk_insert_multiline_statement6s

	

z4TestBulkInserts.test_bulk_insert_multiline_statementcCsP|jd}|j�}dg}|jd|�|jd�|j|�dS)NrrjrkrlzCinsert into bulkinsert (id, name, age, height) values (%s,%s,%s,%s)rr)rrjrkrl)rrrsrri)r1r2rrFr7r7r8�test_bulk_insert_single_recordNs
		
z.TestBulkInserts.test_bulk_insert_single_recordcCsu|jd}|j�}dddg}|jd
|�|j|jj�td��|jd�|j|�dS)z4executemany should work with "insert ... on update" rrjrkrlrrmrnrr
rorprqztinsert
into bulkinsert (id, name,
age, height)
values (%s,
%s , %s,
%s ) on duplicate key update
age = values(age)
 s�insert
into bulkinsert (id, name,
age, height)
values (0,
'bob' , 21,
123 ),(1,
'jim' , 56,
45 ),(2,
'fred' , 100,
180 ) on duplicate key update
age = values(age)rrN)rrjrkrl)rrmrnr)r
rorprq)	rrrsr(rtrvrCrri)r1r2rrFr7r7r8�test_issue_288Ws




zTestBulkInserts.test_issue_288cCs�|jd}|j�}tjdd��!}tjd�|jd�WdQRX|jt|�d�|j|djt	j
�dt|dj�kr�|j
dt|dj�f�dS)	Nr�recordT�alwaysz$drop table if exists no_exists_tablerZno_exists_tablez'no_exists_table' not in %s)rr�warnings�catch_warnings�simplefilterrr(�len�categoryrR�Warning�str�messageZfail)r1Zconra�wsr7r7r8�
test_warningsrs

zTestBulkInserts.test_warnings)rOrPrQrR�cursors�
DictCursorrerdrirurwrxryr�r7r7)rfr8rs	)r"r^r%r|Z	unittest2rrRrZpymysql.cursorsZ
pymysql.testsrZpymysql.errr�__all__ZPyMySQLTestCaserrrr7r7r7r8�<module>s�w