HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/sqlalchemy/testing/__pycache__/assertsql.cpython-310.pyc
o

���g�A�@sTddlmZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZddlm
Z
Gdd	�d	�ZGd
d�de�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�d�ZGd d!�d!e�d!gd"���ZGd#d$�d$�Zejd%d&��ZdS)'�)�annotationsN�)�event)�url)�DefaultDialect)�BaseDDLElementc@s(eZdZdZdZdZdd�Zdd�ZdS)�
AssertRuleFNTcCsdS�N���self�execute_observedr
r
�G/usr/local/lib/python3.10/dist-packages/sqlalchemy/testing/assertsql.py�process_statementszAssertRule.process_statementcCsJd��)NFz?All statements are complete, but pending assertion rules remainr
�rr
r
r�no_more_statementss�zAssertRule.no_more_statements)�__name__�
__module__�__qualname__�is_consumed�errormessage�consume_statementrrr
r
r
rrsrc@�eZdZdS)�SQLMatchRuleN�rrrr
r
r
rr&src@seZdZddd�Zdd�ZdS)�	CursorSQLNTcCs||_||_||_dSr	)�	statement�paramsr)rrrrr
r
r�__init__+s
zCursorSQL.__init__cCsv|jd}|j|jks|jdur(|j|jkr(d|_d|j|j|j|jf|_dS|j�d�d|_|js9d|_dSdS)NrTz5Testing for exact SQL %s parameters %s received %s %s)�
statementsrr�
parametersrr�popr)rr
�stmtr
r
rr0s"
���

�zCursorSQL.process_statement)NT�rrrrrr
r
r
rr*s
rc@sHeZdZ	ddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�Z	dS)�CompiledSQLN�defaultTcCs||_||_||_||_dSr	)rr�dialect�enable_returning)rrrr&r'r
r
rrGs
zCompiledSQL.__init__cCst�dd|j�}||kS�N�[\n\t]�)�re�subr�rr
�received_statementr"r
r
r�_compare_sqlOszCompiledSQL._compare_sqlcCsh|jdkr*t�}d|_|jr(d|_|_|_d|_d|_d|_	d|_
|js(J�|Stj
�|j����S�Nr%T)r&r�supports_default_metavaluer'�insert_returning�update_returning�delete_returning�use_insertmanyvalues�supports_multivalues_insert�update_returning_multifrom�delete_returning_multifrom�insert_executemany_returningr�URL�create�get_dialect)rr
r&r
r
r�_compile_dialectSs
�
zCompiledSQL._compile_dialectc	s�|j}|�|�}d}d�d|jvr|jd}nd}t|jt�r(|jj||d��n|jj|||jj|jj	|d��t
�ddt���}|j
}|sP�j�d�g}||fS��fdd	�|D�}||fS)
zxreconstruct the statement and params in terms
        of a target dialect, which for CompiledSQL is just DefaultDialect.N�schema_translate_map)r&r>)�	cache_keyr&�column_keys�for_executemanyr>r)r*��extracted_parameterscsg|]	}�j|�d��qS)rB)�construct_params)�.0�m��compiledrCr
r�
<listcomp>�s���z3CompiledSQL._received_statement.<locals>.<listcomp>)�contextr=�execution_options�
isinstance�
clauseelementr�compilerHr@rAr+r,�strr rD)	rr
rJ�compare_dialectr?�map_�_received_statementr �_received_parametersr
rGrrRms@
�
����
��zCompiledSQL._received_statementc
Cs�|j}|�|�\}}|�|�}|�||�}|r^|dur^t|�}t|�}|rX|rXt|�d��}	tt|��D]\}
}|	D]}||vsH|||	|krJnq:||
=nq4d}n|rX|s'|s\|r^d}|rhd|_d|_	dS|�
||�||d�|_	dS)NrFT)r.�received_parameters)rJrR�_all_paramsr/�list�dictr!�	enumeraterr�_failure_message)
rr
rJrRrSr�
equivalent�
all_params�all_received�param�idx�received�	param_keyr
r
rr�sH�
��	�
��
�zCompiledSQL.process_statementcCs:|jrt|j�r|�|�}n|j}t|t�s|g}|SdSr	)r�callablerLrV)rrJrr
r
rrU�s

zCompiledSQL._all_paramscC�"d|j�dd�t|��dd�fS�NzzTesting for compiled statement
%r partial params %s, received
%%(received_statement)r with params %%(received_parameters)r�%�%%)r�replace�repr�rr
�expected_paramsr
r
rrY�����zCompiledSQL._failure_messager0)
rrrrr/r=rRrrUrYr
r
r
rr$Fs
�53r$c@s(eZdZ	d
dd�Zdd�Zdd	�ZdS)�RegexSQLNr%FcCs2t�|�t�|�|_||_||_||_||_dSr	)	rrr+rN�regex�
orig_regexrr&r')rrlrr&r'r
r
rr�s

zRegexSQL.__init__cCrb)Nz{Testing for compiled statement ~%r partial params %s, received %%(received_statement)r with params %%(received_parameters)rrdre)rmrfrgrhr
r
rrY�rjzRegexSQL._failure_messagecCst|j�|��Sr	)�boolrl�match)rr
r.r
r
rr/�zRegexSQL._compare_sql)Nr%F)rrrrrYr/r
r
r
rrk�s

�
rkcsDeZdZdd�Zdd�Z�fdd�Zdd�Zd	d
�Zdd�Z�Z	S)
�
DialectSQLcCs|jjSr	)rJr&rr
r
rr=szDialectSQL._compile_dialectcCst�dd|�}||kSr()r+r,)r�	real_stmt�
received_stmtr"r
r
r�_compare_no_spaceszDialectSQL._compare_no_spacecsFt��|�\}}|jD]}|�|j|�rnqtd|��||jjfS)NzICan't locate compiled statement %r in list of statements actually invoked)�superrRrrtr�AssertionErrorrJ�compiled_parameters)rr
rs�received_paramsrr��	__class__r
rrRs�
���zDialectSQL._received_statementcs�|j}t�dd|j�}|�dd�}|dkrt�dd|�}n0d}|dkr&d	}n |d
kr-d}n|�d�rFt�d
��|dkr=dnd���fdd�}t�d||�}|�dd�}|S)Nr)r*z::z!!�pyformatz	:([\w_]+)z%(\1)s�qmark�?�formatz%s�numeric��numeric_dollar�$�:cs��t����Sr	)�next)rF��counter�num_identifierr
r�repl5rpz4DialectSQL._dialect_adjusted_statement.<locals>.repl)�
paramstyler+r,rrf�
startswith�	itertools�count)rr&r�r"r�r
r�r�_dialect_adjusted_statement s"

z&DialectSQL._dialect_adjusted_statementcCs|�|jj�}||kSr	)r�rJr&r-r
r
rr/?s�zDialectSQL._compare_sqlcCs*d|�|jj��dd�t|��dd�fSrc)r�rJr&rfrgrhr
r
rrYEs����zDialectSQL._failure_message)
rrrr=rtrRr�r/rY�
__classcell__r
r
ryrrqsrqc@�$eZdZdd�Zdd�Zdd�ZdS)�CountStatementscCs||_d|_dS�Nr�r��_statement_count)rr�r
r
rrTs
zCountStatements.__init__cCs|jd7_dS)Nr�)r�rr
r
rrXsz!CountStatements.process_statementcCs$|j|jkrJd|j|jf��dS)NFz,desired statement count %d does not match %dr�rr
r
rr[s��z"CountStatements.no_more_statementsN)rrrrrrr
r
r
rr�Ssr�c@�eZdZdd�Zdd�ZdS)�AllOfcG�t|�|_dSr	)�set�rules�rr�r
r
rrd�zAllOf.__init__cCslt|j�D]%}d|_|�|�|jr!|j�|�|jsd|_dS|js*d|_dSqt|j�dj|_dS�NTr)rVr�rrr�discard�rr
�ruler
r
rrgs
�zAllOf.process_statementNr#r
r
r
rr�csr�cs,eZdZdd�Zdd�Z�fdd�Z�ZS)�EachOfcGr�r	)rVr�r�r
r
rryr�zEachOf.__init__cCsp|js	d|_d|_|jr.|jd}|�|�|jr |j�d�n|jr'|j|_|jr+n|js|js6d|_dSdS)NTFr)r�rrrr!rr�r
r
rr|s 

�

�zEachOf.process_statementcs<|jr|jdjs|jd��dS|jrt���dSdSr�)r�rrrurryr
rr�s
�zEachOf.no_more_statements)rrrrrrr�r
r
ryrr�xsr�cseZdZ�fdd�Z�ZS)�Conditionalcs$|r
t�j|�dSt�j|�dSr	)rur)r�	conditionr��
else_rulesryr
rr�szConditional.__init__)rrrrr�r
r
ryrr��sr�c@seZdZdd�ZdS)�OrcCs>|jD]}|�|�|jrd|_dSqt|j�dj|_dSr�)r�rrrVrr�r
r
rr�s

�zOr.process_statementN)rrrrr
r
r
rr��sr�c@r�)�SQLExecuteObservedcCs6||_||_|r||_n
|r|g|_ng|_g|_dSr	)rJrMr r)rrJrM�multiparamsrr
r
rr�s

zSQLExecuteObserved.__init__cCs
t|j�Sr	)rOrrr
r
r�__repr__��
zSQLExecuteObserved.__repr__N)rrrrr�r
r
r
rr��sr�c@r)�SQLCursorExecuteObservedNrr
r
r
rr��sr�)rr rJ�executemanyc@r�)�SQLAssertercCs
g|_dSr	)�accumulatedrr
r
rr�r�zSQLAsserter.__init__cCs|j|_|`dSr	)r��_finalrr
r
r�_close�szSQLAsserter._closecGslt|�}t|j�}|r#|�d�}|�|�|jrn
|jr!J|j��|s|r+Jd|��|js4|��dSdS)NrFz$Additional SQL statements remain:
%s)r�rVr�r!rrrr)rr�r��observedrr
r
r�assert_�s



��zSQLAsserter.assert_N)rrrrr�r�r
r
r
rr��sr�c#s��t��g�t�|d��fdd��}t�|d���fdd��}z�VWt�|d|�t�|d|����dSt�|d|�t�|d|����w)N�before_executecs|||f�dd�<dSr	r
)�connrMr�rrK)�origr
r�connection_execute�sz)assert_engine.<locals>.connection_execute�after_cursor_executecsj|sdS�jr�jdj|ur�jd}nt|�d�d�d�}�j�|�|j�t||||��dS)N���rr�r)r�rJr��appendrr�)r��cursorrr rJr��obs��asserterr�r
r�cursor_execute�s���z%assert_engine.<locals>.cursor_execute)r�r�listens_for�remover�)�enginer�r�r
r�r�
assert_engine�s�

�
r�)�
__future__r�collections�
contextlibr�r+r*rr�r�engine.defaultr�schemarrrrr$rkrqr�r�r�r�r�r��
namedtupler�r��contextmanagerr�r
r
r
r�<module>s>	(L
��