Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.119.163.106
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_shlex.cpython-310.pyc
o

ab�5�@s�ddlZddlZddlZddlZddlZddlmZdZdZGdd�dej�Z	e
edd�sBee	�D]Ze�
d�rAed	krAee	e�q1ed
krLe��dSdS)�N)�mocku�x|x|
foo bar|foo|bar|
 foo bar|foo|bar|
 foo bar |foo|bar|
foo   bar    bla     fasel|foo|bar|bla|fasel|
x y  z              xxxx|x|y|z|xxxx|
\x bar|\|x|bar|
\ x bar|\|x|bar|
\ bar|\|bar|
foo \x bar|foo|\|x|bar|
foo \ x bar|foo|\|x|bar|
foo \ bar|foo|\|bar|
foo "bar" bla|foo|"bar"|bla|
"foo" "bar" "bla"|"foo"|"bar"|"bla"|
"foo" bar "bla"|"foo"|bar|"bla"|
"foo" bar bla|"foo"|bar|bla|
foo 'bar' bla|foo|'bar'|bla|
'foo' 'bar' 'bla'|'foo'|'bar'|'bla'|
'foo' bar 'bla'|'foo'|bar|'bla'|
'foo' bar bla|'foo'|bar|bla|
blurb foo"bar"bar"fasel" baz|blurb|foo"bar"bar"fasel"|baz|
blurb foo'bar'bar'fasel' baz|blurb|foo'bar'bar'fasel'|baz|
""|""|
''|''|
foo "" bar|foo|""|bar|
foo '' bar|foo|''|bar|
foo "" "" "" bar|foo|""|""|""|bar|
foo '' '' '' bar|foo|''|''|''|bar|
\""|\|""|
"\"|"\"|
"foo\ bar"|"foo\ bar"|
"foo\\ bar"|"foo\\ bar"|
"foo\\ bar\"|"foo\\ bar\"|
"foo\\" bar\""|"foo\\"|bar|\|""|
"foo\\ bar\" dfadf"|"foo\\ bar\"|dfadf"|
"foo\\\ bar\" dfadf"|"foo\\\ bar\"|dfadf"|
"foo\\\x bar\" dfadf"|"foo\\\x bar\"|dfadf"|
"foo\x bar\" dfadf"|"foo\x bar\"|dfadf"|
\''|\|''|
'foo\ bar'|'foo\ bar'|
'foo\\ bar'|'foo\\ bar'|
"foo\\\x bar\" df'a\ 'df'|"foo\\\x bar\"|df'a|\|'df'|
\"foo"|\|"foo"|
\"foo"\x|\|"foo"|\|x|
"foo\x"|"foo\x"|
"foo\ "|"foo\ "|
foo\ xx|foo|\|xx|
foo\ x\x|foo|\|x|\|x|
foo\ x\x\""|foo|\|x|\|x|\|""|
"foo\ x\x"|"foo\ x\x"|
"foo\ x\x\\"|"foo\ x\x\\"|
"foo\ x\x\\""foobar"|"foo\ x\x\\"|"foobar"|
"foo\ x\x\\"\''"foobar"|"foo\ x\x\\"|\|''|"foobar"|
"foo\ x\x\\"\'"fo'obar"|"foo\ x\x\\"|\|'"fo'|obar"|
"foo\ x\x\\"\'"fo'obar" 'don'\''t'|"foo\ x\x\\"|\|'"fo'|obar"|'don'|\|''|t'|
'foo\ bar'|'foo\ bar'|
'foo\\ bar'|'foo\\ bar'|
foo\ bar|foo|\|bar|
foo#bar\nbaz|foobaz|
:-) ;-)|:|-|)|;|-|)|
áéíóú|á|é|í|ó|ú|
u1x|x|
foo bar|foo|bar|
 foo bar|foo|bar|
 foo bar |foo|bar|
foo   bar    bla     fasel|foo|bar|bla|fasel|
x y  z              xxxx|x|y|z|xxxx|
\x bar|x|bar|
\ x bar| x|bar|
\ bar| bar|
foo \x bar|foo|x|bar|
foo \ x bar|foo| x|bar|
foo \ bar|foo| bar|
foo "bar" bla|foo|bar|bla|
"foo" "bar" "bla"|foo|bar|bla|
"foo" bar "bla"|foo|bar|bla|
"foo" bar bla|foo|bar|bla|
foo 'bar' bla|foo|bar|bla|
'foo' 'bar' 'bla'|foo|bar|bla|
'foo' bar 'bla'|foo|bar|bla|
'foo' bar bla|foo|bar|bla|
blurb foo"bar"bar"fasel" baz|blurb|foobarbarfasel|baz|
blurb foo'bar'bar'fasel' baz|blurb|foobarbarfasel|baz|
""||
''||
foo "" bar|foo||bar|
foo '' bar|foo||bar|
foo "" "" "" bar|foo||||bar|
foo '' '' '' bar|foo||||bar|
\"|"|
"\""|"|
"foo\ bar"|foo\ bar|
"foo\\ bar"|foo\ bar|
"foo\\ bar\""|foo\ bar"|
"foo\\" bar\"|foo\|bar"|
"foo\\ bar\" dfadf"|foo\ bar" dfadf|
"foo\\\ bar\" dfadf"|foo\\ bar" dfadf|
"foo\\\x bar\" dfadf"|foo\\x bar" dfadf|
"foo\x bar\" dfadf"|foo\x bar" dfadf|
\'|'|
'foo\ bar'|foo\ bar|
'foo\\ bar'|foo\\ bar|
"foo\\\x bar\" df'a\ 'df"|foo\\x bar" df'a\ 'df|
\"foo|"foo|
\"foo\x|"foox|
"foo\x"|foo\x|
"foo\ "|foo\ |
foo\ xx|foo xx|
foo\ x\x|foo xx|
foo\ x\x\"|foo xx"|
"foo\ x\x"|foo\ x\x|
"foo\ x\x\\"|foo\ x\x\|
"foo\ x\x\\""foobar"|foo\ x\x\foobar|
"foo\ x\x\\"\'"foobar"|foo\ x\x\'foobar|
"foo\ x\x\\"\'"fo'obar"|foo\ x\x\'fo'obar|
"foo\ x\x\\"\'"fo'obar" 'don'\''t'|foo\ x\x\'fo'obar|don't|
"foo\ x\x\\"\'"fo'obar" 'don'\''t' \\|foo\ x\x\'fo'obar|don't|\|
'foo\ bar'|foo\ bar|
'foo\\ bar'|foo\\ bar|
foo\ bar|foo bar|
foo#bar\nbaz|foo|baz|
:-) ;-)|:-)|;-)|
áéíóú|áéíóú|
c@s�eZdZdd�Zdd�Zdd�Ze�de�	��dd	��Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,S)-�	ShlexTestcCsldd�t��D�|_dd�t��D�|_|jD]}|d�dd�|d<q|jD]}|d�dd�|d<q'dS)NcS�g|]}|�d�dd��qS��|N�����split��.0�x�r
�8/usr/local/python-3.10/lib/python3.10/test/test_shlex.py�
<listcomp>���z#ShlexTest.setUp.<locals>.<listcomp>cSrrrr
r
r
rr�rrz\n�
)�data�
splitlines�
posix_data�replace)�self�itemr
r
r�setUp�s��

�zShlexTest.setUpcCsdtt|��D])}tj||d|d�}|�|||dd�d||d|||dd�f�qdS)Nr��comments��%s: %s != %s)�range�len�shlexr	�assertEqual)rrr�i�lr
r
r�	splitTest�s���zShlexTest.splitTestcCs:g}t�t�|��}|��}|r|�|�|��}|s|S�N)r�io�StringIO�	get_token�append)r�s�retZlex�tokr
r
r�oldSplit�s
�zShlexTest.oldSplitz	sys.stdincCs:|�t��t�d�Wd�dS1swYdSr$)ZassertWarns�DeprecationWarningrr	�rr
r
r�testSplitNoneDeprecation�s"�z"ShlexTest.testSplitNoneDeprecationcCs|j|jdd�dS)z%Test data splitting with posix parserTrN)r#rr.r
r
r�testSplitPosix�szShlexTest.testSplitPosixcCsjtt|j��D]+}|�|j|d�}|�||j|dd�d|j|d||j|dd�f�qdS)zTest compatibility interfacerrNr)rrrr,r )rr!r"r
r
r�
testCompat�s ���zShlexTest.testCompatc	CstdD]5}d|d|g}dd|ddg}t�|d�D]\}}tj|dd	�}||_t|�}|�||d
||f�qqdS)z)Test handling of syntax splitting of &, |)
�&&�&z|&�;&�;;&�||rz&|z;|z;;|�echo hi %s echo bye�echo hi%secho bye�echo�hi�bye�FTT��punctuation_chars�While splitting '%s' [ws=%s]N��	itertools�productr�whitespace_split�listr �r�	delimiter�src�ref�ss�wsr)�resultr
r
r�testSyntaxSplitAmpersandAndPipe�s�
���z)ShlexTest.testSyntaxSplitAmpersandAndPipec	CszdD]8}d|d|d|g}dd|ddg}t�|d�D]\}}tj|d	d
�}||_t|�}|�||d||f�qqdS)
z&Test handling of syntax splitting of ;)�;z;;r4r5r7zecho hi%s echo byer8r9r:r;r<Tr=r?Nr@rEr
r
r�testSyntaxSplitSemicolon�s�
���z"ShlexTest.testSyntaxSplitSemicolonc	CsrdD]4}d|d|d|g}dd|dg}t�|d�D]\}}tj|d	d
�}t|�}|�||d||f�qqdS)
z&Test handling of syntax splitting of >)�<rzecho hi %s outz
echo hi%s outzecho hi%soutr9r:�outr<Tr=r?N)rArBrrDr rEr
r
r�testSyntaxSplitRedirect�s�
���z!ShlexTest.testSyntaxSplitRedirectcCs\ddg}gd�}t�|d�D]\}}tj|dd�}||_t|�}|�||d||f�qdS)	z'Test handling of syntax splitting of ()z( echo hi )z	(echo hi))�(r9r:�)r<Tr=r?Nr@)rrGrHrIrJr)rKr
r
r�testSyntaxSplitParen�s�
��zShlexTest.testSyntaxSplitParencCsnd}gd�}tj|dd�}t|�}|�||d|�gd�}tj|dd�}d|_t|�}|�||d|�d	S)
z3Test handling of syntax splitting with custom charsz~/a&&b-c --color=auto||d *.py?)z~/ar3r3zb-c�--color=autor6�d�*.py?rr=zWhile splitting '%s' [ws=False])z~/a&&b-crUr6rVrWTzWhile splitting '%s' [ws=True]N)rrDr rC)rrIrHr)rKr
r
r�testSyntaxSplitCustom�szShlexTest.testSyntaxSplitCustomcCsxdgd�ffD]2\}}tj|dd�}g}	|��}||jkrq3|d|jvr)d}nd}|�||f�q|�||�qdS)	z2Test that tokens are split with types as expected.za && b || c))�arY)r2�c)�brY)r6rZ)rZrYTr=rrZrYN)rr'�eofr>r(r )r�source�expectedr)Zobserved�t�ttr
r
r�testTokenTypess"��
�	�zShlexTest.testTokenTypescCs4tjddd�}|�d|j�|�t|�gd��dS)z:Test that any punctuation chars are removed from wordcharsZa_b__c�_r=)rYrbr[�__rZN)rZassertNotInZ	wordcharsr rD�rr)r
r
r�testPunctuationInWordCharssz$ShlexTest.testPunctuationInWordCharscCsNtjddd�}|�t|�gd��tjddd�}d|_|�t|�gd��dS)z9Test that with whitespace_split, behaviour is as expectedza  && b  ||  cr3r=)rYr2r[rrrZT)rYr2r[r6rZN)rr rDrCrdr
r
r�"testPunctuationWithWhitespaceSplits
z,ShlexTest.testPunctuationWithWhitespaceSplitcCsLtjdddd�}|�t|�gd��tjdddd�}|�t|�gd��dS)z@Test that punctuation_chars and posix behave correctly together.zf >"abc"T��posixr>)�f�>�abcz
f >\"abc\")rirjz"abc"N)rr rDrdr
r
r�testPunctuationWithPosix&sz"ShlexTest.testPunctuationWithPosixcCs`gd�}dD]}tjdd|d�}t|�}|�||�qgd�}tjddd�}|�t|�|�dS)	z8Test that parsing of empty strings is correctly handled.)�rSrkr<z'')abcTrg)�''rSrkr=N)rrDr )rr^�punctr)Zslistr
r
r�testEmptyStringHandling.sz!ShlexTest.testEmptyStringHandlingcCsXd}dg}tj|dd�}d|_|�t|�|�gd�}tj|dd�}|�t|�|�dS)z;Test punctuation_chars and whitespace_split handle unicode.uℙƴ☂ℌøἤTr=)uℙuƴu☂uℌ�øuἤN)rrCr rD)rrIrHr)r
r
r�testUnicodeHandling:szShlexTest.testUnicodeHandlingcCs�tjtjd}d}d|}|�t�d�d�|�t�|�|�|�t�d�d�|D]}|�t�d|�d	|�q+|D]}|�t�d
|�d|�q=dS)Nz
@%_-+=:,./uéàßz"`$\!rmrnztest file namez'test file name'z
test%snamez'test%sname'ztest%s'name'z'test%s'"'"'name'"'"'')�string�
ascii_letters�digitsr r�quote)rZsafeunquotedZunicode_sampleZunsafe�ur
r
r�	testQuoteGs���zShlexTest.testQuotec	Cs|ddgdfddgdfgd�dfd	d
gdffD]%\}}|j|d��t�|�}|�||�Wd�n1s6wYqdS)
Nza r[z'a ' brYz bza ' b')rY� r[za ' ' bz"azb"z	'"a' 'b"'��command)�subTestr�joinr )r�
split_commandr{�joinedr
r
r�testJoinVs



�
���zShlexTest.testJoinc	Csj|j|j}|D]*^}}|j|d��t�|�}t�|�}|�||�Wd�n1s-wYqdS)Nrz)rrr|rr}r	r )rZall_datar{r~rZresplitr
r
r�testJoinRoundtripas

���zShlexTest.testJoinRoundtripcCsTd}tj|d�}|�|j|�|�t��d|_Wd�dS1s#wYdS)Nz/|$%^r=F)rr r>ZassertRaises�AttributeError)rr>Zshlex_instancer
r
r�testPunctuationCharsReadOnlyis"�z&ShlexTest.testPunctuationCharsReadOnlyN)�__name__�
__module__�__qualname__rr#r,rZpatchr%r&r/r0r1rLrNrQrTrXrarerfrlrprrrxr�r�r�r
r
r
rr�s.
	



rr	�testr1�__main__)r%rArrsZunittestrrrZTestCaser�getattr�dirZmethname�
startswith�delattrr��mainr
r
r
r�<module>s$?@i
��
© 2025 GrazzMean