Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/test_codecs.cpython-310.pyc
o

�9j��@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZddl
mZzddl
Z
WneyEdZ
YnwzddlZWn
eyYdZdZYnwe�ej�Zdd�Zd	d
�ZGdd�de�ZGd
d�d�ZGdd�de�ZGdd�deej�ZGdd�deej�ZGdd�deej�ZGdd�deej�ZGdd�deej�ZGdd�deej�ZGdd�deej�Z Gdd �d eej�Z!Gd!d"�d"ej�Z"Gd#d$�d$ej�Z#Gd%d&�d&e ej�Z$Gd'd(�d(ej�Z%gd)�Z&e&D]Z'e(e'�d*k�r	e)e*e'��q�Gd+d,�d,ej�Z+gd-�Z,Gd.d/�d/ej�Z-Gd0d1�d1ej�Z.Gd2d3�d3ej�Z/Gd4d5�d5ej�Z0Gd6d7�d7ej�Z1gd8�Z2e3ed9��rSe2�4d:�e3ed;��r^e2�4d<�d=gZ5Gd>d?�d?eje�Z6Gd@dA�dAej�Z7GdBdC�dCej�Z8GdDdE�dEej�Z9GdFdG�dGeej�Z:GdHdI�dIeej�Z;GdJdK�dKej�Z<GdLdM�dMej�Z=GdNdO�dOej�Z>gdP�Z?dQdRgdSggdT�dUgdVgdW�Z@zddlAZAWne�y�dZAYnwe?�4dX�dYdZge@dX<zddlBZBWn
e�y�Ynwe?�4d[�d\ge@d[<Gd]d^�d^ej�ZCiZDd_d`�ZEGdadb�dbej�ZFe�GejHdckdd�Gdedf�dfej��ZIGdgdh�dhej�ZJGdidj�djej�ZKGdkdl�dlej�ZLe�Me
dudm�Gdndo�doej��ZNGdpdq�dqej�ZOGdrds�dsej�ZPGdtdu�duej�ZQeRdvk�r}e�S�dSdS)w�N)�mock)�support)�	os_helper)�warnings_helper���cs��fdd�}|S)Ncs���|�|t|�f�dS�N)�assertEqual�len)�input�expect��coder�self��'/usr/lib/python3.10/test/test_codecs.py�checkszcoding_checker.<locals>.checkr)rr
rrrr�coding_checkersrc
s�ddlm}m}m}ddlm}m�m�m�m	}d�d�d�G������fdd�dtj
�}||�|||��}|d	|d
�f�}|�}	||d|	�S)Nr)�POINTER�WINFUNCTYPE�WinDLL)�BOOL�BYTE�WCHAR�UINT�DWORD��ics@eZdZd�fd��fd��fd�fd�fd��fgZdS)z'is_code_page_present.<locals>.CPINFOEXW�MaxCharSize�DefaultChar�LeadByte�UnicodeDefaultChar�CodePage�CodePageNameN)�__name__�
__module__�__qualname__�_fields_r�r�MAX_DEFAULTCHAR�
MAX_LEADBYTES�MAX_PATHrrrr�	CPINFOEXW(s


�r+�GetCPInfoExW�kernel32)�ctypesrrr�ctypes.wintypesrrrrr�	Structure)
�cprrrrrr+�	prototype�GetCPInfoEx�inforr'r�is_code_page_present!s r5c@s*eZdZdZdd�Zdd�Zd
dd�Zd	S)�QueuezF
    queue: write bytes at one end, read bytes from the other end
    cCs
||_dSr��_buffer)r�bufferrrr�__init__9�
zQueue.__init__cCs|j|7_dSrr7)r�charsrrr�write<�zQueue.writercCsD|dkr|j}|jdd�|_|S|jd|�}|j|d�|_|S�Nrr7)r�size�srrr�read?sz
Queue.readN)r)r#r$r%�__doc__r:r=rBrrrrr65s
r6c@�eZdZdd�Zdd�ZdS)�MixInCheckStateHandlingc	Cs�tt|�d�D]^}t�|��}|�|d|��}|��}|�|dt�|dsI|�|ddd�df�|�	|�|d��|�
||���t�|��}|�|�|�||d�d�}|�
|||�qdS)N�rT)�ranger	�codecs�getincrementaldecoder�decode�getstate�assertIsInstance�int�setstate�
assertTruer�	r�encoding�urA�i�d�part1�state�part2rrr�check_state_handling_decodeKs
�z3MixInCheckStateHandling.check_state_handling_decodec	Csztt|�d�D]2}t�|��}|�|d|��}|��}t�|��}|�|�|�||d�d�}|�|||�qdS)NrFT)rGr	rH�getincrementalencoder�encoderKrNrrPrrr�check_state_handling_encodeas
�z3MixInCheckStateHandling.check_state_handling_encodeN)r#r$r%rXr[rrrrrEJsrEc@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dZ
dd�Zdd�ZdS)�ReadTestc
	Cs�td�}t�|j�|�}d}t|�|j�|dd�D]\}}|�t|g��||��7}|�	||�q|�	|��d�|�	|j
d�t�|j��}d}t|�|j�|dd�D]\}}||�t|g��7}|�	||�qU|�	|�dd�d�|�	|j
d�|��d}t|�|j�|dd�D]\}}||�t|g��7}|�	||�q�|�	|�dd�d�|�	|j
d�|�|j�}	|�	|d�t�dd�|	D�|j���dS)N��T��strictcSsg|]}t|g��qSr��bytes��.0�crrr�
<listcomp>�sz*ReadTest.check_partial.<locals>.<listcomp>)r6rH�	getreaderrQ�ziprZr=rbrBr�
bytebufferrIrJr9�reset�join�
iterdecode)
rr
�partialresults�q�r�resultre�
partialresultrT�encodedrrr�
check_partialms8�zReadTest.check_partialcs��fdd��d�fdd�	}d}d}d}��||d�|���||d	�|���||dd
�|���||d	d
�|�d}g}g}t|�D]\}}	|�|ddd
|	�|�|ddd
�qC��|d�|�d�d�|����|d�|�d	�d�|��td�D]U}
|D]P}	d
|
d|	d}�|�}td
�D]}��|jdd�|
d|	���|jdd�d�q��|�}td
�D]}��|jd	d�|
d���|jd	d�d�q�q�q�dS)Ncs"t�|��j��}t��j�|�Sr��io�BytesIOrZrQrHrg)r
�stream�rrrrg��z)ReadTest.test_readline.<locals>.getreaderTcs8�|�}g}	|j||d�}|sn|�|�qd�|�S)NT)r@�keepends�|)�readline�appendrk)r
rzr@�reader�lines�line)rgrr�readalllines�s
�
z,ReadTest.test_readline.<locals>.readalllinesufoo
bar
baz
spam
eggsufoo
|bar
|baz
|spam
|eggszfoo|bar|baz|spam|eggsF�
)�
�
�
u
��uあr^r{�P�azxxx
�rz�xxx)TN)r�	enumerater}rkrGr|)rr�rA�	sexpected�sexpectednoends�lineends�vw�vworS�lineendr@r~r)rgrr�
test_readline�sV


�
�
�
����zReadTest.test_readlinecs2gd�}d�|����fdd�}|�}��|��|d���|��d�|dd�����|��d�|�}��|��|d���|�d�|dd���|�d�d���|�d��t|d�dd�dd��|�}��|��|d���|��|dd����|��d�|�}��|jdd	d
��dd	����|���d	d����|��d�|�}��|jdd	d
��dd	����|�d��d	���|�d�d���|�d��dd��|�}��|jdd	d
��dd	����|��|dd	d�g|dd����|��d�dS)
N)zHumpty Dumpty sat on a wall,
z!Humpty Dumpty had a great fall.
z-All the king's horses and all the king's men
z#Couldn't put Humpty together again.r^cs"t����j��}t��j�|�Srrt)rw��datarrrrg�ryz8ReadTest.test_mixed_readline_and_read.<locals>.getreaderrrF�d�(�)r@r<��j)rkrr|rBr	�	readlines)rrrg�frr�r�test_mixed_readline_and_read�s:
.*z%ReadTest.test_mixed_readline_and_readcCsVgd�}t�d�|��|j��}t�|j�|�}t|�D]\}}|�|||�qdS)N)=z:<%!--===================================================
z,    BLOG index page: show recent articles,
z7    today's articles, or articles of a specific date.
z>========================================================--%>
z!<%@inputencoding="ISO-8859-1"%>
z<%@pagetemplate=TEMPLATE.y%>
z$<%@import=import frog.util, frog%>
z!<%@import=import frog.objects%>
z9<%@import=from frog.storageerrors import StorageError%>
z<%
r�zimport logging
z+log=logging.getLogger("Snakelets.logger")
r�r�zuser=self.SessionCtx.user
z-storageEngine=self.SessionCtx.storageEngine
r�r�z-def readArticlesFromDate(date, count=None):
z2    entryids=storageEngine.listBlogEntries(date)
z%    entryids.reverse() # descending
z    if count:
z#        entryids=entryids[:count]
z
    try:
z\        return [ frog.objects.BlogEntry.load(storageEngine, date, Id) for Id in entryids ]
z    except StorageError,x:
z6        log.error("Error loading articles: "+str(x))
z,        self.abort("cannot load articles")
r�zshowdate=None
r�zarg=self.Request.getArg()
zif arg=="today":
z,    #-------------------- TODAY'S ARTICLES
z-    self.write("<h2>Today's articles</h2>")
z(    showdate = frog.util.isodatestr() 
�.    entries = readArticlesFromDate(showdate)
zelif arg=="active":
z4    #-------------------- ACTIVE ARTICLES redirect
z     self.Yredirect("active.y")
zelif arg=="login":
z/    #-------------------- LOGIN PAGE redirect
z    self.Yredirect("login.y")
zelif arg=="date":
z7    #-------------------- ARTICLES OF A SPECIFIC DATE
z2    showdate = self.Request.getParameter("date")
zV    self.write("<h2>Articles written on %s</h2>"% frog.util.mediumdatestr(showdate))
r�zelse:
z+    #-------------------- RECENT ARTICLES
z,    self.write("<h2>Recent articles</h2>")
z.    dates=storageEngine.listBlogEntryDates()
z    if dates:
z        entries=[]
z        SHOWAMOUNT=10
z         for showdate in dates:
zW            entries.extend( readArticlesFromDate(showdate, SHOWAMOUNT-len(entries)) )
z*            if len(entries)>=SHOWAMOUNT:
z                break
z                
r^)	rurvrkrZrQrHrgr�r)rrArwr~rSr�rrr�test_bug1175396s?�zReadTest.test_bug1175396cCsNtd�}t�|j�|�}t�|j�|�}|�d�|�|jdd�d�|�d�|�|jdd�d�|�|jdd�d�|�d	�|�|jdd�d	�|�|jdd�d�|�d�|�|jd
d�d�|�d�|�|jd
d�d�|�|jd
d�d�|�d	�|�|jd
d�d	�|�|jd
d�d�|�d
�|�|jd
d�d
�dS)Nr]zfoo
Fr��fooz
bar
r^�bar�bazTr�zbar
zfoo
)r6rH�	getwriterrQrgr=rr|)rrn�writerr~rrr�test_readlinequeueHs*






zReadTest.test_readlinequeuecCs~d}d}d}|||�|j�}t�|�}t�|j�|�}|�|��|�|�|��|�|�|��|�|�|��d�dS)NzAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
z`offending line: ladfj askldfj klasdj fskla dfzaskdj fasklfj laskd fjasklfzzzzaa%whereisthis!!!
znext line.
r^�rZrQrurvrHrgrr|)r�s1�s2�s3rArwr~rrr�test_bug1098990_acs
zReadTest.test_bug1098990_ac	Cs�d}d}d}d}d}|||||�|j�}t�|�}t�|j�|�}|�|��|�|�|��|�|�|��|�|�|��|�|�|��|�|�|��d�dS)Nzaaaaaaaaaaaaaaaaaaaaaaaa
zbbbbbbbbbbbbbbbbbbbbbbbb
zstillokay:bbbbxx
zbroken!!!!badbad
zagainokay.
r^r�)	rr�r�r��s4�s5rArwr~rrr�test_bug1098990_bps
zReadTest.test_bug1098990_b��c	Cs�|�tdj|j�|�d�|jd�d�|j��|�d�|jd�d�|j��|�d�|jd�d�|j��|�d�|jd�d	�|j��|�d�|jd
�d�|j��|�d�|jd�d	�|j��|�d�|jd
�d
�|j��d�|j�}dD]�\}}|�|j�t|�d�}|�|j�t|�d�}|d|}|||j|}|�t|j|j�|�|�|jd�|�|�|�|jd�|�|�|�|jd�||�|�|�|jd
�||j	|�d�
dd�|jD��}|�|�|jd�|||�qzdS)Nu��[�]�backslashreplacez[\udc80]�namereplace�xmlcharrefreplacez
[&#56448;]�ignore�[]�replacez[?]�[��]z[??]r^))�𐿿�A)�[�])r�r����
surrogatepasscss�|]}d|VqdS)�\x%02xNr)rd�brrr�	<genexpr>�s��z0ReadTest.test_lone_surrogates.<locals>.<genexpr>)�assertRaises�UnicodeEncodeErrorrZrQrr	�ill_formed_sequence�UnicodeDecodeErrorrJ�ill_formed_sequence_replacerk)	r�bom�before�after�before_sequence�after_sequence�test_string�
test_sequencer�rrr�test_lone_surrogates�st
�
�
�
�
�
�
���
�������
�
��zReadTest.test_lone_surrogatescCs�d�|jd�}tdt|��D]%}t�|j�d�}|�|�|d|��d�|�|�||d�d�d�qd�|jd�}tdt|��D]$}t�|j�d�}|�|�|d|��d�|�|�||d��d�qBdS)Nu�r�rFr^Tu�)rZrQrGr	rHrIrrJ)rr�rS�decrrr�test_incremental_surrogatepass�s�z'ReadTest.test_incremental_surrogatepassN)
r#r$r%rsr�r�r�r�r�r�r�r�r�rrrrr\ls+;0E
,r\c@�deZdZdZejdkrdZndZdZdZdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�ZdS)�	UTF32Test�utf-32�little����܀s$��spamspams$��spamspamcC�t�|j�\}}}}t��}||�}|�d�|�d�|��}|�||jkp+||j	k�t�|�}||�}|�
|��d�dS�N�spam�spamspam�rH�lookuprQrurvr=�getvaluerO�spamle�spamberrB�r�_r~r�rAr�rTrrr�test_only_one_bom��


zUTF32Test.test_only_one_bomcC�Tt�d�}t�|j�|�}|�t|j�t�d�}t�|j�|�}|�t|j�dS)N�����s���������rurvrHrgrQr��UnicodeErrorrB�rrAr�rrr�test_badbom��

zUTF32Test.test_badbomcC�|�dgd��dS)N�ÿĀ￿𐀀)r^r^r^r^r^r^r^�r�r�r��ÿr�r�r��ÿĀr�r�r��ÿĀ￿r�r�r�r��rsrxrrr�test_partial���zUTF32Test.test_partialcC�0|�dt�ddd��|�dt�ddd��dS�N)r�rF�r�T)r^rFr��rrH�
utf_32_decoderxrrr�
test_handlers���zUTF32Test.test_handlerscC�|�ttjddd�dS�N��r`T)r�r�rHr�rxrrr�test_errors�
�zUTF32Test.test_errorscC�(|�|jd|j�|�|jd|j�dS�Nr��rXrQr�r�rxrrr�test_decoder_state���zUTF32Test.test_decoder_statecCs8d}|�dt�|�d�d}|�dt�|�d�dS)Ns���𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀rs��r�)r�
encoded_le�
encoded_berrr�test_issue8941s��zUTF32Test.test_issue8941N)r#r$r%rQ�sys�	byteorderr�r�r�r�r�r�r�r�rrrrrrr��s
	r�c@�4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)�UTF32LETest�	utf-32-ler�cCr��Nr�)r^r^r^r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rxrrrr�$r�zUTF32LETest.test_partialcC�|�d�|j�d�dS)N�𐈃s�rrZrQrxrrr�test_simple?�zUTF32LETest.test_simplecCr�r�)r�r�rH�utf_32_le_decoderxrrrr�Br�zUTF32LETest.test_errorscC�d}|�dt�|�d�dS)Nsrr)rrHr�rrrrrrrF��zUTF32LETest.test_issue8941N�	r#r$r%rQr�r�rr�rrrrrr	 �r	c@r)�UTF32BETest�	utf-32-ber�cCr�rr�rxrrrr�Rr�zUTF32BETest.test_partialcCr)Nr
srrxrrrrmrzUTF32BETest.test_simplecCr�r�)r�r�rH�utf_32_be_decoderxrrrr�pr�zUTF32BETest.test_errorscCr)Nsrr)rrHrrrrrrtrzUTF32BETest.test_issue8941NrrrrrrNrrc@r�)�	UTF16Test�utf-16r�����܀s��spamspams��spamspamcCr�r�r�r�rrrr��r�zUTF16Test.test_only_one_bomcCr�)Ns��r�r�r�rrrr��r�zUTF16Test.test_badbomcCr�)Nr�)r^r^r^r�r�r�r�r�r�r�r�r�r�r�r�rxrrrr��r�zUTF16Test.test_partialcCr�r�)rrH�
utf_16_decoderxrrrr��r�zUTF16Test.test_handlerscCr�r�)r�r�rHrrxrrrr��r�zUTF16Test.test_errorscCr�r�r�rxrrrr�rzUTF16Test.test_decoder_statecCs�d}|�|j�}|�tjtj�ttjd��
}|�|�Wd�n1s&wYt�	dt
f��tjtjd|jd�}Wd�n1sGwY|�|�|�
�|�Wd�dS1sbwYdS)NzHello
world
�wbr^�U�rQ)rZrQ�
addCleanupr�unlink�TESTFN�openr=r�check_warnings�DeprecationWarningrHrrB)rr�rA�fpr~rrr�test_bug691291�s��"�zUTF16Test.test_bug691291N)r#r$r%rQrrr�r�r�r�r�r�r�r�rr)rrrrr|s
	rc@�,eZdZdZdZdd�Zdd�Zdd�Zd	S)
�UTF16LETest�	utf-16-lercCr��Nr�)r^r�r�r�r�r�r�r�r�r�r�r�r�rxrrrr��r�zUTF16LETest.test_partialcC�Bgd�}|D]\}}|�ttj|dd�|�|�dd�|�qdS)N)�r�r�)sAZ�A�)s	ABCDZ�ABCD�)s�r�)s�Ar�)s�A��A)s�Ar2r`Tzutf-16ler�)r�r�rH�utf_16_le_decoderrJ�r�tests�raw�expectedrrrr���	
��zUTF16LETest.test_errorscC�,|�d�|j�d�|�d�|j�d�dS)Nr
s�ީrrZrQrJrxrrr�test_nonbmp����zUTF16LETest.test_nonbmpN�r#r$r%rQr�r�r�r;rrrrr+��r+c@r*)
�UTF16BETest�	utf-16-bercCr�r-r�rxrrrr�r�zUTF16BETest.test_partialcCr.)N)r/)sA�r0)s	ABCDZr1)s�r�)s��r�)s�Ar2)s�Ar2r`Tzutf-16ber�)r�r�rH�utf_16_be_decoderrJr4rrrr�r8zUTF16BETest.test_errorscCr9)Nr
s��r:rxrrrr;%r<zUTF16BETest.test_nonbmpNr=rrrrr?�r>r?csTeZdZdZdZdZdZdd�Zdd�Zd	d
�Z	�fdd�Z
d
d�Zdd�Z�Z
S)�UTF8Test�utf-8s�u	���r]cCr�)N�ÿ߿ࠀ￿𐀀)r�r�r�r��ÿ߿rErE�ÿ߿ࠀrFrF�ÿ߿ࠀ￿rGrGrGrDr�rxrrrr�1r�zUTF8Test.test_partialcCs d}|�|j||�|j��dS)Nu€ÿĀ߿ࠀ￿􏿿)rXrQrZ)rrRrrrrGs�zUTF8Test.test_decoder_statec	CsZdD](\}}}|j|||d��|�|�|j|�|�Wd�n1s%wYqdS)N�)�[��]r�r�)rIr�u[��])rI�surrogateescape�[��])rIr�z
[\x80\xff]�r��
error_handlerr7)�subTestrrJrQ�rr�rMr7rrr�test_decode_errorLs�����zUTF8Test.test_decode_errorcs�t���|�d�|jd�|jd�|�t��}d�|jd�Wd�n1s*wY|j}|�|j	|j
|j�d�dS)Nr�rJs[�]u[���]u��)�superr�rrZrQ�BOMr�r��	exception�object�start�end)r�cm�exc��	__class__rrr�Xs
��zUTF8Test.test_lone_surrogatescCs|�d�|jd�|jd�|�d�|jd�|jd�|�d�|jd�|jd�|�d�|jd�d�|�d�|jd�d�|�t�d��|�t	��d�|jd�Wd�n1s_wY|�t	��d	�|jd�Wd�dS1s|wYdS)
Nu	abc�defr�s	abc�defu𐿿�s𐿿�r�s[��]sabc�sabc�z)
rrZrQrRrJrOrH�lookup_errorr�r�rxrrr�test_surrogatepass_handlerds,������"�z#UTF8Test.test_surrogatepass_handlerc	Cs�gd�}dD]}dD]	}|�||�q
q|�d�|D]'}|j|d��t�|j��}|�t|j|�Wd�n1s>wYqdS)N)������������r�)������s���s���s�s���s�s�)�r_)s�s�s�s�s�s�s�r�)	r}�extendrNrHrIrQr�r�rJ)r�cases�prefix�suffixr�r�rrr�test_incremental_errorsws�
���z UTF8Test.test_incremental_errors)r#r$r%rQr�r�rRr�rrPr�r\ro�
__classcell__rrrYrrB+srBc@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�UTF7Test�utf-7cCsd}|�|�|j�|�d��|�|�d��|j�|�d}|�|�|j�|�d��|�|�d��|j�|�|�d�|j�d�|�d�|j�d�d}|�|�|j�|�d��|�|�d��|j�|�d�ttttd�����t||d	|���}|�|�|j�d
�dS)NzGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?�asciiz !"#$%&*;<=>@[]^_`{|}za+bsa+-bz 	

r^��+sX+AAAAAQACAAMABAAFAAYABwAIAAsADAAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwBcAH4Afw-)	rrZrQrJrk�sorted�setrbrG)r�set_d�set_o�ws�other_asciirrr�
test_ascii�s"��zUTF7Test.test_asciicCr�)N�a+-bc€dĀe𐀀f) r�r��a+za+-�a+-brrrrza+-b�a+-bcr�r�r�r�ua+-bc€�	a+-bc€dr�r�r�r�ua+-bc€dĀ�a+-bc€dĀer�r�r�r�r�r�r�ua+-bc€dĀe𐀀r}r�rxrrrr��r�zUTF7Test.test_partialc	Csngd�}|D].\}}|j|d��|�ttj|dd�|�|�dd�|�Wd�n1s/wYqdS)N))s�bu�b)sa�b�a�b)sa��bua��b)sa+IK�a�)sa+IK-br�)sa+IK,br�)sa+IKx�a€�)sa+IKx-b�a€�b)sa+IKwgrr�)s	a+IKwgr-br�)sa+IKwgr,r�)s
a+IKwgr,-bu	a€�-b)sa+IKwgrB�
a€€�)s
a+IKwgrB-b�a€€�b)s
a+/,+IKw-b�a�€b)sa+//,+IKw-br�)sa+///,+IKw-b�a￿�€b)s
a+////,+IKw-br�)sa+IKw-b�ua€b�)sa+IKw�br�)sa+@br��r6r`Trrr�)rNr�r�rH�utf_7_decoderrJr4rrrr��s
����zUTF7Test.test_errorscCs�|�d�|j�d�|�d�|j�d�|�d�|j�d�|�d�|j�d�|�d�|j�d�|�d�|j�d�|�d�|j�d�|�d�|j�d	�|�d	�|j�d�|�d
�|j�d�dS)Nu𐒠s+2AHcoA-u��s+2AHcoAu€𐒠s
+IKzYAdyg-s	+IKzYAdygu
€€𐒠s
+IKwgrNgB3KA-s+IKwgrNgB3KAr:rxrrrr;�s ���zUTF7Test.test_nonbmpc	CsZgd�}|D]$\}}|j|d��|�|�dd�|�Wd�n1s%wYqdS)N)
)sa+2AE-bua�b)sa+2AE�br�)sa+2AEr�)sa+2AEA-br�)sa+2AH-br�)s
a+IKzYAQ-bua€�b)s
a+IKzYAQ�br�)sa+IKzYAQA-br�)s
a+IKzYAd-br�)sa+IKwgrNgB-bua€€�b)sa+IKwgrNgB�br�)s
a+IKwgrNgBr�)s
a+IKwgrNgBA-br�r�rrr��rNrrJr4rrrr��s���zUTF7Test.test_lone_surrogatesN)	r#r$r%rQr|r�r�r;r�rrrrrq�s'rqc@rD)�UTF16ExTestcCs|�ttjdddd�dS)Nr�r`rT)r�r�rH�utf_16_ex_decoderxrrrr�szUTF16ExTest.test_errorscCs|�ttj�dSr)r��	TypeErrorrHr�rxrrr�
test_bad_argsr>zUTF16ExTest.test_bad_argsN)r#r$r%r�r�rrrrr�sr�c@�$eZdZdd�Zdd�Zdd�ZdS)�ReadBufferTestcCs&ddl}|�t�|�dd��d�dS)Nrr��spam)r��)�arrayrrH�readbuffer_encode)rr�rrr�
test_arrays
�zReadBufferTest.test_arraycCs|�t�d�d�dS)Nr^�r]r)rrHr�rxrrr�
test_empty �zReadBufferTest.test_emptycC�"|�ttj�|�ttjd�dS�N�*)r�r�rHr�rxrrrr�#�zReadBufferTest.test_bad_argsN)r#r$r%r�r�r�rrrrr�sr�c@s>eZdZdZejZdd�Zdd�Zdd�Z	dd	�Z
d
d�ZdS)
�UTF8SigTest�	utf-8-sigcCr�)N�ÿ߿ࠀ￿𐀀)r^r^r^r^r^u�r��ÿr��ÿ߿r�r��ÿ߿ࠀr�r��ÿ߿ࠀ￿r�r�r�r�r�rxrrrr�+r�zUTF8SigTest.test_partialcCs|�tdd�d�dS)N�r�r^�r�strrxrrr�test_bug1601501G�zUTF8SigTest.test_bug1601501cCs,t�d��}d}|�|�|�d��|�dS)Nr�r�)rHrIrrJrZ)rrTrArrr�test_bomKszUTF8SigTest.test_bomc	Cs�d}tjd}t�d�}dgttdd��gd�D]/}|t�|��}t��}	|dur2|�|�}n|��}|s9n|�	|�q(|�
�}|�||�qdS�NuABC¡∀XYZsABC¡∀XYZr�rF�)�@rt�ii)rH�BOM_UTF8rg�listrGrurv�StringIOrBr=r�r�	r�	unistring�
bytestringr~�sizehint�istream�ostreamr��gotrrr�test_stream_bomPs&

�
�
�zUTF8SigTest.test_stream_bomc	Cs�d}d}t�d�}dgttdd��gd�D]/}|t�|��}t��}	|dur/|�|�}n|��}|s6n|�|�q%|�	�}|�
||�qdSr�)rHrgr�rGrurvr�rBr=r�rr�rrr�test_stream_barefs&
�
�
�zUTF8SigTest.test_stream_bareN)r#r$r%rQrHr�rRr�r�r�r�r�rrrrr�'sr�c@�4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�EscapeDecodeTestcCs*|�t�d�d�|�t�t��d�dS)Nr]r�)rrH�
escape_decode�	bytearrayrxrrrr�~szEscapeDecodeTest.test_emptycCsFtj}td�D]}t|g�}|dkr |�||d�|ddf�qdS)Nr��\�0r)rHr�rGrbr�rrJr�rrr�test_raw�s
��zEscapeDecodeTest.test_rawcCs�tj}t||�}|dd�|dd�|dd�|dd�|d	d
�|dd�|d
d�|dd�|dd�|dd�|dd�|dd
�|dd�|dd�|dd�|dd�|d d!�|d"d�|d#d�|d$d!�dS)%N�[\
]�[]�[\"]s["]�[\']s[']�[\\]s[\]�[\a]s[]�[\b]s[]�[\t]s[	]�[\n]s[
]�[\v]s[]�[\f]s[]�[\r]s[
]�[\7]�[\78]s[8]�[\41]s[!]�[\418]s[!8]�[\101]s[A]�[\1010]s[A0]s[\501]�[\x41]�[\x410])rHr�r�rrJrrrr�test_escape�s,



















zEscapeDecodeTest.test_escapec	Cs�tj}t||�}tdd�D]S}t|g�}|dvr9|�td|��|d|d|�Wd�n1s4wY|�td|d��|d|��d|���Wd�n1s[wYq
|�td��
|dd�Wd�n1swwY|�t��
|d	d	�Wd�n1s�wY|�td
��
}|dd�Wd�n1s�wY|�td��|�	|d
d�d�Wd�dS1s�wYdS)N�a�{sabfnrtvx�invalid escape sequence '\\%c'r�� �invalid escape sequence '\\8'�\8�\9� invalid escape sequence '\\\xfa'�\��invalid escape sequence '\\z'�\x\zr�)s\zr�)
rHr�rrGrb�assertWarnsRegexr'�upper�assertWarnsr�rrJrrSr�rWrrr�
test_warnings�sF

��
���������"�zEscapeDecodeTest.test_warningscCs�tj}|�t|d�|�t|d�|�|dd�d�|�|dd�d�|�t|d�|�t|d	�|�|d
d�d�|�|d
d�d�dS)
Ns\xs[\x]s[\x]\xr�)r�r�r�)�[?]?r�s\x0s[\x0]s[\x0]\x0)r��)r�r�)rHr�r��
ValueErrorr)rrJrrrr��szEscapeDecodeTest.test_errorsN)r#r$r%r�r�r�r�r�rrrrr�}sr�))u"ليهمابتكلموشعربي؟segbpdaj6bu4bxfgehfvwxn)u他们为什么不说中文sihqwcrb4cv8a8dqg056pqjye)u他們爲什麽不說中文sihqwctvzc91f659drss3x8bo0yb)uPročprostěnemluvíčeskysProprostnemluvesky-uyb24dma41a)u,למההםפשוטלאמדבריםעבריתs4dbcagdahymbxekheh6e0a7fei0b)uZयहलोगहिन्दीक्योंनहींबोलसकतेहैंs,i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd)u6なぜみんな日本語を話してくれないのかs&n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa)uH세계의모든사람들이한국어를이해한다면얼마나좋을까sE989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c)u8почемужеонинеговорятпорусскиs b1abfaaepdrnnbgefbaDotcwatmq2g4l)u*PorquénopuedensimplementehablarenEspañols-PorqunopuedensimplementehablarenEspaol-fmd56a)u-TạisaohọkhôngthểchỉnóitiếngViệts,TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g)u3年B組金八先生s3B-ww4c5e180e575a65lsy2b)u"安室奈美恵-with-SUPER-MONKEYSs(-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n)u'Hello-Another-Way-それぞれの場所s(Hello-Another-Way--fc4qua05auwb3674vfr0b)uひとつ屋根の下2s2-u9tlzr9756bt3uc0v)uMajiでKoiする5秒前sMajiKoi5-783gue6qz075azm5e)uパフィーdeルンバsde-jg4avhby1noc0d)uそのスピードでsd9juau41awczczp)z-> $1.00 <-s-> $1.00 <--rc@r�)�PunycodeTestcCs8tD]\}}|�t|�d�d���t|d����qdS�N�punycoders)�punycode_testcasesrr�rZ�lower�r�uni�punyrrr�test_encode4s��zPunycodeTest.test_encodecCsFtD]\}}|�||�d��|�d��d�}|�||�d��qdSr�)r�rrJrZr�rrr�test_decode@s
�zPunycodeTest.test_decodec	Cs�ddt�fdg}|D]5\}}}|j||d��!t|t�r&|�t|jd|�n
|�|�d|�|�Wd�n1s:wYq
dS)N�xn--w&r`)r�r�zxn-)r��errorsr�)r�rN�
isinstance�	Exceptionr�rJr)r�	testcasesr�r�r7rrr�test_decode_invalidFs
�
����z PunycodeTest.test_decode_invalidN)r#r$r%r�r�r�rrrrr�3sr�)-)s%foo­͏᠆᠋bar​⁠baz︀︈️s	foobarbaz)sCAFEscafe)sßsss)sİsi̇)sŃͺsń ι�NN)sǰ ªsǰ a)sᾷsᾶι)�ǰr)�ΐr)�ΰr)�ẖr)�ὖr)� r)s r)s N)s r)s​r])s r)�r)s…N)s᠎N)r�r])s𝅵N)sN)s󱈴N)s􏈴N)s򏿾N)s􏿿N)s�N)s�N)s⿵N)śś)s‎N)s‪N)s󠀁N)s󠁂N)sfoo־barN)s	fooﵐbarN)s	fooﹶbars	foo َbar)sا1N)�ا1بrr�)sX­ßİ℡ǰ ªΰ sxssi̇telǰ aΰ )sXß㌖İ℡⒟㌀s*xssキロメートルi̇tel(d)アパートc@�eZdZdd�ZdS)�NameprepTestcCs�ddlm}tt�D]F\}\}}|durq
t|dd�}|dur'|�t||�q
t|dd�}z
|�||�|�Wq
tyP}z
t	�
d|dt|�f��d}~wwdS)Nr)�namepreprCr�z
Test 3.%d: %srF)�encodings.idnar
r��nameprep_testsr�r�r�rr�r�
TestFailed)rr
�pos�orig�prepped�errr�
test_nameprep�s���zNameprepTest.test_nameprepN)r#r$r%rrrrrr	��r	c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�
IDNACodecTestcCsL|�tdd�d�|�tdd�d�|�tdd�d�|�tdd�d	�dS)
N�
python.org�idna�
python.org�python.org.�python.org.�xn--pythn-mua.org�pythön.org�xn--pythn-mua.org.�pythön.org.r�rxrrr�test_builtin_decode�z!IDNACodecTest.test_builtin_decodecCsL|�d�d�d�|�d�d�d�|�d�d�d�|�d�d�d	�dS)
Nrrrrrrrrr�rrZrxrrr�test_builtin_encoderz!IDNACodecTest.test_builtin_encodecCsr|�td��
d�d�Wd�n1swY|�td��d�d�Wd�dS1s2wYdS)Nztoo longsTxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsNxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)�assertRaisesRegexr�rJrxrrr� test_builtin_decode_length_limits�"�z.IDNACodecTest.test_builtin_decode_length_limitcCs2t�d�t�d��}|�d�|�|��d�dS)Nr�abc�r^)rHrgrurvrBr)rrorrr�test_streams
zIDNACodecTest.test_streamcCs<|�d�t�dd�dD�d��d�|�d�t�dd�dD�d��d	�|�d�t�d
d�dD�d��d�|�d�t�d
d�dD�d��d�t�d��}|�|�d�d�|�|�d�d�|�|�d�d�|�|�dd�d�|��|�|�d�d�|�|�d�d�|�|�d�d�|�|�dd�d�dS)Nr^cs��|]}t|g�VqdSrrarcrrrr���z8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>rrrcsr'rrarcrrrr�r(rrcsr'rrarcrrrr�#r(rrcsr'rrarcrrrr�'r(sxn--xams	ple-9ta.ou	äxample.srgr]T�orgsrg.zorg.)rrkrHrlrIrJrj)r�decoderrrr�test_incremental_decodes4����z%IDNACodecTest.test_incremental_decodecCs�|�d�t�dd��d�|�d�t�dd��d�|�d�t�dd��d�|�d�t�dd��d�t�d��}|�|�d	�d�|�|�d
�d�|�|�dd
�d�|��|�|�d	�d�|�|�d�d�|�|�dd
�d�dS)Nr]rrrrrrruäxz	ample.orgsxn--xample-9ta.r^Tsorgz
ample.org.sxn--xample-9ta.org.)rrkrH�
iterencoderYrZrj)r�encoderrrr�test_incremental_encode7s0����z%IDNACodecTest.test_incremental_encodecCsJd�dd�d�dd�dD]}|�tdjd|�|�tdjd|�qdS)z$Only supports "strict" error handlerrrr`r)r�r�r�rJN)rZrJr�r��rr�rrrr�Ss��zIDNACodecTest.test_errorsN)
r#r$r%rr!r#r&r+r.r�rrrrrsrc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�CodecsModuleTestcCsx|�t�dd�d�|�ttj�|�t�d�d�|�ttjdd�|�tjddd�d�|�tjd	dd
d�d�dS)
N���latin-1�äöür$�abcr�rs��objrQ�[�]r��r�r�)rrHrJr�r�r�rxrrrr�`s���zCodecsModuleTest.test_decodecCs�|�t�dd�d�|�ttj�|�ttjdd�|�t�d�d�|�ttjdd	�|�tjddd
�d�|�tjdd	dd
�d�dS)Nr3r2r1r��__spam__r4r$uÿffrsr5�[ÿ]r�r8r�)rrHrZr�r��LookupErrorr�rxrrrr�ms���zCodecsModuleTest.test_encodecCr�r�)r�r�rH�registerrxrrr�
test_register{r�zCodecsModuleTest.test_registercCs^d}t��}t�|�|�ttj|�|�|�|��t�	|�|�t
tj|�|��dS)N�nonexistent_codec_name)r�MockrHr<r�r�r��assert_called_with�
reset_mock�
unregisterr;�assert_not_called)r�name�search_functionrrr�test_unregisters


z CodecsModuleTest.test_unregistercCs2|�ttj�|�ttjd�|�ttjd�dS)Nr9� )r�r�rHr�r;rxrrr�test_lookup�szCodecsModuleTest.test_lookupcC�"|�ttj�|�ttjd�dS�Nr9)r�r�rH�
getencoderr;rxrrr�test_getencoder�r�z CodecsModuleTest.test_getencodercCrIrJ)r�r�rH�
getdecoderr;rxrrr�test_getdecoder�r�z CodecsModuleTest.test_getdecodercCrIrJ)r�r�rHrgr;rxrrr�test_getreader�r�zCodecsModuleTest.test_getreadercCrIrJ)r�r�rHr�r;rxrrr�test_getwriter�r�zCodecsModuleTest.test_getwritercCslt�tj�}|�tjtj|�z	t�tjd�Wntjy'|�d�Ynwt�d�}|�|j	d�dS)N�tr_TRztest needs Turkish locale�ASCIIrs)
�locale�	setlocale�LC_CTYPEr"�Error�skipTestrHr�rrD)r�	oldlocalererrr�test_lookup_issue1813�s�
z&CodecsModuleTest.test_lookup_issue1813cCs,d}|�|tj�tjD]}tt|�qdS)N),rZrJr<�	CodecInfo�Codec�IncrementalEncoder�IncrementalDecoder�StreamReader�StreamWriterr�rKrMrYrIrgr��register_errorr[�
strict_errors�replace_errors�
ignore_errors�xmlcharrefreplace_errors�backslashreplace_errors�namereplace_errorsr%�EncodedFiler,rlrR�BOM_BE�BOM_LEr��	BOM_UTF16�BOM_UTF16_BE�BOM_UTF16_LE�	BOM_UTF32�BOM_UTF32_BE�BOM_UTF32_LE�BOM32_BE�BOM32_LE�BOM64_BE�BOM64_LE�StreamReaderWriter�
StreamRecoder)�assertCountEqualrH�__all__�getattr)r�apirrr�test_all�s

�zCodecsModuleTest.test_allc
Cs�|�tjtj�dD]6}|�|��'t�tj|d��}|�|tj�Wd�n1s,wYWd�n1s;wYq
dS)N)�wrozr+�w+r�r~rs)	r"rr#r$rNrHr%rLrt)r�mode�filerrr�	test_open�s�����zCodecsModuleTest.test_opencCs~|�ttjdd�|�ttjdd�|�ttjdd�|�ttjdd�dD]}|�ttjdd|�|�ttjdd|�q&dS)Nr4�	undefinedr$r^r])r`r�r�r�)r�r�rHrZrJr/rrr�test_undefined�s
�
��zCodecsModuleTest.test_undefinedc	Cs�t��}t�d|��,}|�t��t�tjdd�Wd�n1s#wY|�j	�
�Wd�dS1s9wYdS)Nz
builtins.open�wtzinvalid-encoding)r�	mock_open�patchr�r;rHr%rr$�close�
assert_called)rr�r~rrr�'test_file_closes_if_lookup_error_raised�s�"�z8CodecsModuleTest.test_file_closes_if_lookup_error_raisedN)r#r$r%r�r�r=rFrHrLrNrOrPrYrzrr�r�rrrrr0^s

r0c@rD)�StreamReaderTestcCst�d�|_t�d�|_dS)NrC�한
글)rHrgr~rurvrwrxrrr�setUp��zStreamReaderTest.setUpcCs$|�|j�}|�|��ddg�dS)Nu한
u글)r~rwrr�)rr�rrr�test_readlines�szStreamReaderTest.test_readlinesN)r#r$r%r�r�rrrrr��sr�c@r)�EncodedFileTestcCs\t�d�}t�|dd�}|�|��d�t��}t�|dd�}|�d�|�|��d�dS)Nr�r,rCs\�
�r2�ü��)rurvrHrgrrBr=r��rr��efrrr�
test_basic�s

zEncodedFileTest.test_basicN)r#r$r%r�rrrrr���r�)ers�big5�	big5hkscs�charmap�cp037�cp1006�cp1026�cp1125�cp1140�cp1250�cp1251�cp1252�cp1253�cp1254�cp1255�cp1256�cp1257�cp1258�cp424�cp437�cp500�cp720�cp737�cp775�cp850�cp852�cp855�cp856�cp857�cp858�cp860�cp861�cp862�cp863�cp864�cp865�cp866�cp869�cp874�cp875�cp932�cp949�cp950�euc_jis_2004�euc_jisx0213�euc_jp�euc_kr�gb18030�gb2312�gbk�	hp_roman8�hzr�
iso2022_jp�iso2022_jp_1�iso2022_jp_2�iso2022_jp_2004�iso2022_jp_3�iso2022_jp_ext�
iso2022_kr�	iso8859_1�
iso8859_10�
iso8859_11�
iso8859_13�
iso8859_14�
iso8859_15�
iso8859_16�	iso8859_2�	iso8859_3�	iso8859_4�	iso8859_5�	iso8859_6�	iso8859_7�	iso8859_8�	iso8859_9�johab�koi8_r�koi8_t�koi8_u�kz1048�latin_1�mac_cyrillic�	mac_greek�mac_iceland�
mac_latin2�	mac_roman�mac_turkish�palmos�ptcp154r��raw_unicode_escape�	shift_jis�shift_jis_2004�shift_jisx0213�tis_620�unicode_escape�utf_16�	utf_16_be�	utf_16_le�utf_7�utf_8�mbcs_encode�mbcs�
oem_encode�oemr�c@sJeZdZdd�Zejdd��Zdd�Zdd�Zd	d
�Z	dd�Z
d
d�ZdS)�BasicUnicodeTestc	s�d}tD�]c}t�|�j}|�d�r|d7}n|dkrd}|�|�dd�|�dd��t�|�|�\}}|�|t|�d|�t�	|�|�\}}|�||d|�|t
vr�td�}t�|�|�}d}	|D]}
|�
|
�|��}|�t|�tut|��|	|7}	qdtd�}t�|�|�}d}
|	D]}
|�
t|
g��|
|��7}
q�|�|
|d|�|t
v�rhzt�|���Wn	ty�Ynhwd}	|D]	}
|	��|
�7}	q�|	��dd	�7}	t�|���d}
|	D]}
|
��t|
g��7}
q�|
��dd	�7}
|�|
|d|�d�t�t�||�|��}|�||d|�d�t�t�d|�|��}|�|d�|d
v�rhz	t�|�d��Wn
t�y?Yqwd��fdd
�|D��}	t�|�d��d��fdd
�|	D��}
|�|
|d|�qdS)N�abc123�_codecr�r��-�encoding=%rr]r^T�rr�r�c3��|]}��|�VqdSr�rZrc)r-rrr��r(z/BasicUnicodeTest.test_basics.<locals>.<genexpr>c3� �|]}��t|g��VqdSr�rJrbrc)r*rrr�����)�all_unicode_encodingsrHr�rD�endswithrr�rKr	rM�broken_unicode_with_statefulr6r�r=rBrO�typerbrgrYr;rZrIrJrkrlr,)rrArQrDr�r@r<rnr��
encodedresultre�chunkr~�
decodedresultrpr)r*r-r�test_basicsns�





����
�����zBasicUnicodeTest.test_basicsc	s0d}tD]�}|tvr�zt�|��Wn	tyYn>wd}|D]	}|��|�7}q|��dd�7}t�|��d}|D]}|��t|g��7}q:|��dd�7}|�	||d|�|dvr�zt�|d��Wn	tymYqwd�
�fdd	�|D��}t�|d��d�
�fd
d	�|D��}|�	||d|�qdS)Nr�r]r^Tr�r�r�c3rrrrc)�cencoderrrr��r(z4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>c3rrrrc)�cdecoderrrr��r)rr�	_testcapi�codec_incrementalencoderr;rZ�codec_incrementaldecoderrJrbrrk)rrArQr	rerr)rr
r�test_basics_capi�sH�
������z!BasicUnicodeTest.test_basics_capicCsrdd}tD]0}|dkr
q|tvrqt�|�t�|�|���}td�D]}|�dd�|�	�}|�
||�q#qdS)Nz%s
%s
)�Xabc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123�Xdef456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456rr�r)rrrHrgrurvrZrG�seekrBr)rrArQr~�tr�rrr�	test_seek�s��zBasicUnicodeTest.test_seekcCs:tD]}t�|�}|�t|�|dvr|�t|d�qdS)N)rr�r�)rrHrMr�r�)rrQr*rrr�test_bad_decode_args�s
��z%BasicUnicodeTest.test_bad_decode_argscCs$tD]
}t�|�}|�t|�qdSr)rrHrKr�r�)rrQr-rrr�test_bad_encode_args�s
�z%BasicUnicodeTest.test_bad_encode_argscCs&ddlm}t|j�}|�||�dS)Nr)r�)�	encodingsr�r�encoding_tabler)rr��
table_typerrr�"test_encoding_map_type_initialized�s
z3BasicUnicodeTest.test_encoding_map_type_initializedcCsBd}tD]}|tvr|�|||�|��|�|||�|��qdS)Nr�)rrrXrZr[)rrRrQrrrrs��z#BasicUnicodeTest.test_decoder_stateN)r#r$r%rr�cpython_onlyrrrrrrrrrrr�msM
%r�c@r�)�CharmapTestcCs|�t�ddd�d�|�t�ddd�d�|�ttjddd�|�ttjddd�|�t�dd	d�d
�|�t�dd	d�d
�|�t�ddd�d�|�t�ddd�d�|�t�dd
d�d�|�t�dd
d�d�ttd��}|�t�|d
d�dt|�f�dS)N�r`r4�r4r%�􏿿bc�r"r%�abuab￾r��uab�r%r��zab\x02r%r��r$r%r�r^)rrH�charmap_decoder�r�rbrGr	�r�allbytesrrr�test_decode_with_string_mapsV��
�
�������
�z'CharmapTest.test_decode_with_string_mapcCs<|�t�dddddd��d�|�t�dddd	d
d��d�|�t�dddddd��d
�|�t�dddddd��d�|�ttjddddd��|�ttjdddddd��|�ttjdddddd��|�t�ddddd��d�|�t�dddddd��d�|�t�dddddd��d�|�t�ddddd��d�|�t�dddddd��d�|�t�dddddd��d�|�t�ddddd��d�|�t�dddddd��d�|�t�dddddd��d�ttd��}|�t�|di�dt|�f�|�t	dtjdddd	dd��|�t	dtjdddd	dd��dS)Nr r`r�r�re�rrFrr!�Aa�Bb�Cc)�AaBbCcr%�􏿿r#r^r'�rrFu￾r�r%r�r&r�r�z.character mapping must be in range\(0x110000\)r����i�ɚ;)
rrHr(r�r�rbrGr	r"r�r)rrr�test_decode_with_int2str_mapCs�
��
��
��
���
�
���
��
����
��
����
��
��
���z(CharmapTest.test_decode_with_int2str_mapc
Cs�td�}td�}td�}|�t�dd|||d��d�|�t�ddd||d��d	�|�t�ddtj||d��ttj�d
df�|�ttjddtjd||d��|�t	tjdd||d
��|�t	tjdd||dd��|�t�dd||d
��d�|�t�dd||dd��d�|�t�dd||d
��d�|�t�dd||dd��d�|�t�dd||d
��d�|�t�dd||dd��d�dS)Nr�r�rer r`r,r!i��r#�bcr%rFr2i��r�r%r�r&r�r')
�ordrrHr(r�
maxunicode�chrr�r�r�)rr�r�rerrr�test_decode_with_int2int_map�s�
��
������
���
����
����
��z(CharmapTest.test_decode_with_int2int_mapN)r#r$r%r+r4r9rrrrrs7trc@rD)�WithStmtTestcCsXt�d�}t�|dd��}|�|��d�Wd�n1swY|�|j�dS)Nr�r2rCr�)rurvrHrgrrBrO�closedr�rrr�test_encodedfile	s

�zWithStmtTest.test_encodedfilecCs^t�d�}t�d�}t�||j|jd��}|�|��d�Wd�dS1s(wYdS)Nr�rCr`�ü)	rurvrHr�rt�streamreader�streamwriterrrB)rr�r4�srwrrr�test_streamreaderwriter
	s


�"�z$WithStmtTest.test_streamreaderwriterN)r#r$r%r<rArrrrr:	sr:c@rD)�	TypesTestcCsftjtjtjtjtjtjtjtjtj	tj
tjtjg}t
td�r%|�tj�|D]	}|�t|d�q'dS)N�mbcs_decoder�)rHr��utf_8_decoder3rAr�r�rr�utf_32_ex_decode�latin_1_decode�ascii_decoder(�hasattrr}rCr�r�)r�decodersr*rrr�test_decode_unicode	s$�
�zTypesTest.test_decode_unicodecCs�|�t�d�d�|�t�d�d�|�t�d�d�|�t�d�d�|�ttjd�|�t�dd�d�|�t�dd�d	�|�ttjd�|�t�dd�d�|�t�dd�d	�dS)
Nz\u1234)uሴr�s\u1234�
\U00110000z
\U00110000r��r�r�r�)z(\x5c\x55\x30\x30\x31\x31\x30\x30\x30\x30r�)rrH�unicode_escape_decode�raw_unicode_escape_decoder�r�rxrrr�test_unicode_escape(	s��zTypesTest.test_unicode_escapeN)r#r$r%rJrOrrrrrB	srBc@sTeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�ZdS)�UnicodeEscapeTestzunicode-escapeNcC�(|�t�d�d�|�t�d�d�dS�Nr^r�r]�r^r)rrH�unicode_escape_encoderMrxrrrr�@	�zUnicodeEscapeTest.test_emptycCs@tj}tdd�D]}|dkr|�|t|��t|g�df�qdS)Nr���\rF)rHrTrGrr8rb�rrZr�rrr�test_raw_encodeD	s��z!UnicodeEscapeTest.test_raw_encodecCsFtj}td�D]}|dkr |�|t|g�d�t|�ddf�qdS)Nr�rWr��0r)rHrMrGrrbr8r�rrr�test_raw_decodeJ	s&��z!UnicodeEscapeTest.test_raw_decodecCs�tj}t||�}|dd�|dd�|dd�|dd�td	�D]}t|�d
vr3|t|�d|���q tdd
�D]
}|t|�d|���q9|dd�|dd�dS)N�	s\tr�s\nr�s\r�\s\\r�z	

r�rVr��€�\u20ac�𝄠�
\U0001d120)rHrTrrGr8rZ�rrZrr�rrr�test_escape_encodeP	s




�
z$UnicodeEscapeTest.test_escape_encodecCs�tj}t||�}|dd�|dd�|dd�|dd�|d	d
�|dd�|d
d�|dd�|dd�|dd�|dd�|dd
�|dd�|dd�|dd�|dd�|d d!�|d"d�|d#d!�|d$d%�|d&d'�dS)(Nr�r�r�z["]r�z[']r�z[\]r�z[]r�z[]r�z[	]r�z[
]r�z[]r�z[]r�z[
]r�r�z[8]r�z[!]r�z[!8]r�z[A]r�z[A0]r�r�r_r^rar`)rHrMrr�rrr�test_escape_decode_	s.




















z$UnicodeEscapeTest.test_escape_decodec	Cs�tj}t||�}tdd�D]]}t|g�}|dvr;|�td|��|d|dt|��Wd�n1s6wY|��dvrj|�td|d��|d|��dt|d��Wd�n1sewYq
|�td	��
|d
d�Wd�n1s�wY|�	t��
|dd
�Wd�n1s�wY|�td��
}|dd�Wd�n1s�wY|�td��|�
|dd�d�Wd�dS1s�wYdS)Nr�r�s	abfnrtuvxr�r�r]sUNr�r�r�z\8r�z\9r�r�u\úr�r�r�)z\zr�)rHrMrrGrbr�r'r8r�r�rr�rrr�test_decode_warningsx	sH

��
� ��������"�z&UnicodeEscapeTest.test_decode_warningsc	C��tj}dD]Q\}}t|�D]H}|�t|d|d|�|�t|d|d|d�d|d|d|d|}|�||d�dt|�f�|�||d	�d
t|�f�q
q|�t|d�|�|dd�d�|�|dd	�d
�dS)N))�xr��ur���Ur�r�r��[\�]�]\r�r�r��[�]�rK�r^r�rL)rHrMrGr�r�rr	�rrJrerTrSr�rrr�test_decode_errors�	�$�� 
��	z$UnicodeEscapeTest.test_decode_errorscCr�)N�	

\ÿ￿𐀀) r^r^r^r�r��	ru�	
rv�	

rw�	

\rxrxrx�	

\ÿryryryryry�
	

\ÿ￿rzrzrzrzrzrzrzrzrzrtr�rxrrrr��	r�zUnicodeEscapeTest.test_partial)
r#r$r%rQr�r�rYr[rcrdrerrr�rrrrrP;	srPc@sLeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�ZdS)�RawUnicodeEscapeTestzraw-unicode-escapeNcCrQrR)rrH�raw_unicode_escape_encoderNrxrrrr��	rUzRawUnicodeEscapeTest.test_emptycCs6tj}td�D]}|�|t|��t|g�df�qdS)Nr�rF)rHr|rGrr8rbrXrrrrY�	s �z$RawUnicodeEscapeTest.test_raw_encodecCs>tj}td�D]}|�|t|g�d�t|�ddf�qdS)Nr�r�rZr)rHrNrGrrbr8r�rrrr[�	s(�z$RawUnicodeEscapeTest.test_raw_decodecCsZtj}t||�}td�D]}|dvr |dt|�dt|g��q|dd�|dd�dS)	Nr��uUr]r�r^r_r`ra)rHr|rrGr8rbrbrrrrc�	�
�
z'RawUnicodeEscapeTest.test_escape_encodecCsZtj}t||�}td�D]}|dvr |dt|g�dt|��q|dd�|dd�dS)	Nr�r}r�r]r_r^rar`)rHrNrrGrbr8)rrJrr�rrrrd�	r~z'RawUnicodeEscapeTest.test_escape_decodec	Crf)N)rhrjr�r�rlrmrnr�r�r�rorKrprL)rHrNrGr�r�rr	rqrrrrr�	rsz'RawUnicodeEscapeTest.test_decode_errorscCr�)Nrt)r�rurvrwrwryryryryryryrzrzrzrzrzrzrzrzrzrzrtr�rxrrrr��	r�z!RawUnicodeEscapeTest.test_partial)r#r$r%rQr�r�rYr[rcrdrrr�rrrrr{�	s		r{c@r)�EscapeEncodeTestc	Cs|gd�}|D]#\}}|j|d��|�t�|�|�Wd�n1s$wYq|�ttjd�|�ttjtd��dS)N))r]r�)�foobar)r�r�)s	spameggs)sspam\x00eggs�	)sa'b)sa\'br%)sb\c)sb\\cr%)sc
d)sc\ndr%)sd
e)sd\rer%)sfg)sf\x7fgr%rjr�r�)rNrrH�
escape_encoder�r�r�)rr5r��outputrrrrc
s
��z#EscapeEncodeTest.test_escape_encodeN)r#r$r%rcrrrrr
r�rc@�,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�SurrogateEscapeTestcCsT|�d�dd�d�|�d�dd�d�|�d�dd�d�|�d�dd�d�dS)N�foo�barrCrJ�	foo�bars�u	����rrJrZrxrrr�	test_utf81
s����zSurrogateEscapeTest.test_utf8cC�,|�d�dd�d�|�d�dd�d�dS)Nr�rsrJr�r�rxrrrr|=
���zSurrogateEscapeTest.test_asciicCr�)Nsfoo�barz
iso-8859-3rJu	foo�barr�rxrrr�test_charmapD
r�z SurrogateEscapeTest.test_charmapcCs|�d�dd�d�dS)Nu�����r2rJs���r rxrrr�test_latin1K
s�zSurrogateEscapeTest.test_latin1N)r#r$r%r�r|r�r�rrrrr�/
s
r�c@r)�BomTestc	Cs�d}d}|�tjtj�|D�]=}tjtjd|d��0}|�|�|�|�|�d�|�|�	�|d�|�d�|�|�	�|d�Wd�n1sMwYtjtjd|d��.}|�|d�|�
|��d�|�d�|�|�|�d�|�|�	�|�Wd�n1s�wYtjtjd|d��2}|j�|d�|�
|j��d�|j�d�|j�|�|�d�|�|�	�|�Wd�n1s�wYtjtjd|d��(}|�|�|�|���|�|�|�d�|�|�	�|d�Wd�n	1�s	wYtjtjd|d��,}|j�|�|j�|j���|j�|�|�d�|�|�	�|d�Wd�n	1�sGwYqdS)N�
1234567890)rr,r@r�r
rr|r!rr)
r"rr#r$rHr%r=rrrB�assertNotEqual�tellr�)rr�r5rQr�rrr�
test_seek0R
sX




�	


�	
�



�	
���zBomTest.test_seek0N)r#r$r%r�rrrrr�Q
rr�)�base64_codec�uu_codec�quopri_codec�	hex_codec�base64�base_64�uu)�quopri�quoted_printable�quotedprintable�hex�rot13)r�r�r�r��rot_13�
zlib_codecrh�zlib�	bz2_codec�bz2c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
e�e
d�dd��Zdd�Zdd�Zdd�Zdd�ZdS)�TransformCodecTestc	Cs�ttd��}tD]@}|j|d��0t�|�|�\}}|�|t|��t�|�|�\}}|�|t|��|�||�Wd�n1sCwYqdS)Nr�r!)	rbrG�bytes_transform_encodingsrNrHrKrr	rM)r�binputrQ�or@rSrrrr�
s���zTransformCodecTest.test_basicsc	C�ntD]2}|j|d��"t�d|�}t�|�t�|��}|��}|�|d�Wd�n1s/wYqdS�Nr!r])	r�rNrHrZrgrurvrBr�rrQ�sinr~�soutrrr�	test_read�
����zTransformCodecTest.test_readc	Cr�r�)	r�rNrHrZrgrurvr|rr�rrrr��
r�z TransformCodecTest.test_readlinec	Cs�d}tD]L}|j|d��<|}t|�}t�||�}t�||�}|�||�t|�}t�||�}|�||�t�||�}|�||�Wd�n1sKwYqdS)Ns12345�r!)r�rN�
memoryviewrHrZrrJ)r�originalrQr��view�view_encoded�view_decodedrrr�test_buffer_api_usage�
s ���z(TransformCodecTest.test_buffer_api_usagec
Cs�d}tD]A}|j|d��1d}|�|�}|�t|��
}|�|�Wd�n1s*wY|�|jj�Wd�n1s@wYqdS)Nzbad input typer!zM{!r} is not a text encoding; use codecs.encode\(\) to handle arbitrary codecs)	r�rN�formatr"r;rZ�assertIsNonerS�	__cause__)r�	bad_inputrQ�fmt�msg�failurerrr�/test_text_to_binary_denylists_binary_transforms�
s
����zBTransformCodecTest.test_text_to_binary_denylists_binary_transformscCs@d}|�t|��d�d�Wd�dS1swYdS)NzR^'rot_13' is not a text encoding; use codecs.encode\(\) to handle arbitrary codecszjust an example messager�)r"r;rZ�rr�rrr�-test_text_to_binary_denylists_text_transforms�
s"�z@TransformCodecTest.test_text_to_binary_denylists_text_transformsc
Cs�d}tD]]}|j|d��Mt�||�}d}|�|�}|�t|��
|�|�Wd�n1s0wY|�t|��t|��|�Wd�n1sMwYWd�n1s\wYqdS)Ns6encode first to ensure we meet any format restrictionsr!zM{!r} is not a text encoding; use codecs.decode\(\) to handle arbitrary codecs)	r�rNrHrZr�r"r;rJr�)rr�rQ�encoded_datar�r�rrr�/test_binary_to_text_denylists_binary_transforms�
s 
������zBTransformCodecTest.test_binary_to_text_denylists_binary_transformsc
Cs�dtd�fD]<}|j|d��,d}|�t|��
}|�d�Wd�n1s'wY|�|jj�Wd�n1s=wYqdS)Ns	immutablesmutable)r�zR^'rot_13' is not a text encoding; use codecs.decode\(\) to handle arbitrary codecsr�)r�rNr"r;rJr�rSr�)rr�r�r�rrr�-test_binary_to_text_denylists_text_transforms�
s����z@TransformCodecTest.test_binary_to_text_denylists_text_transformszRequires zlib supportcC�Vd}|�t|��}t�dd�Wd�n1swY|�|jjt|j��dS)Nz(^decoding with 'zlib_codec' codec failed�hellor��r"r�rHrJrLrSr�r�rr�r�rrr�!test_custom_zlib_error_is_wrappeds�
�z4TransformCodecTest.test_custom_zlib_error_is_wrappedcCr�)Nz'^decoding with 'hex_codec' codec failedr�r�r�r�rrr� test_custom_hex_error_is_wrapped
s�
�z3TransformCodecTest.test_custom_hex_error_is_wrappedc
Cspt��D]1\}}t�|�j}|D]$}|j|d��t�|�}|�|j|�Wd�n1s/wYqqdS)N)�alias)�transform_aliases�itemsrHr�rDrNr)r�
codec_name�aliases�
expected_namer�r4rrr�test_aliasess
����zTransformCodecTest.test_aliasescCs4t�dd�}|�|d�d}|�t�|d�|�dS)Nsspace tab	eol 
zquopri-codecsspace=20tab=09eol=20
sspace tab eol
)rHrZrrJ)rrr�	unescapedrrr�test_quopri_stateless!sz(TransformCodecTest.test_quopri_statelesscCs|�ttjdd�dS)Nr]zuu-codec)r�r�rHrJrxrrr�test_uu_invalid)r�z"TransformCodecTest.test_uu_invalidN)r#r$r%rr�r�r�r�r�r�r��unittest�
skipUnlessr�r�r�r�r�r�rrrrr��
s


r�cCs
t�|�Sr)�_TEST_CODECS�get)r�rrr�_get_test_codec8r;r�c@s�eZdZdd�Zdd�Zdd�Zejdd��Zd	d
�Z	e
fdd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%S)&�ExceptionChainingTestcCs(d|_t�t�|�tjt�t|_dS)N�exception_chaining_test)r�rHr<r�r"rB�RuntimeError�obj_to_raiserxrrrr�>s

	zExceptionChainingTest.setUpcCs"t�|jd�tj�|jd�dSr)r��popr�r�_cacherxrrr�tearDownLszExceptionChainingTest.tearDowncCs tj|||jd�}|t|j<dS)N)rD)rHrZr�r�)rrZrJ�
codec_inforrr�	set_codecQs�zExceptionChainingTest.set_codecccsl�d�||j|j|�}|�||��}|VWd�n1swY|�|jj|�|�|jjj�dS)Nz${} with {!r} codec failed \({}: {}\))	r�r�r#r"rLrSr��assertIsNotNone�
__traceback__)r�	operation�exc_typer��full_msg�caughtrrr�
assertWrappedVs���z#ExceptionChainingTest.assertWrappedcOs|j�r�r�)r�args�kwdsrrr�	raise_obj_szExceptionChainingTest.raise_objcCs||_|�|j|j�|�d||��d�|j�Wd�n1s#wY|�d||��t�d|j�Wd�n1sAwY|�d||��d�|j�Wd�n1s^wY|�d||��t�d|j�Wd�dS1s}wYdS)NrQ�	str_input�decoding�bytes input)r�r�r�r�rZr�rHrJ)rr�r�r�rrr�
check_wrappedcs���"�z#ExceptionChainingTest.check_wrappedcCs|�td�dS)Nr^�r�r�rxrrr�test_raise_by_typeosz(ExceptionChainingTest.test_raise_by_typecCsd}|�t|�|�dS)N�This should be wrappedr�r�rrr�test_raise_by_valuersz)ExceptionChainingTest.test_raise_by_valuecC�*d}Gdd�dt�}|�||�||�dS)Nr�c@seZdZdZdS)zWExceptionChainingTest.test_raise_grandchild_subclass_exact_size.<locals>.MyRuntimeErrorrN)r#r$r%�	__slots__rrrr�MyRuntimeErrorxsr��r�r��rr�r�rrr�)test_raise_grandchild_subclass_exact_sizev�z?ExceptionChainingTest.test_raise_grandchild_subclass_exact_sizecCr�)Nr�c@seZdZdS)zVExceptionChainingTest.test_raise_subclass_with_weakref_support.<locals>.MyRuntimeErrorN)r#r$r%rrrrr�~sr�r�r�rrr�(test_raise_subclass_with_weakref_support|r�z>ExceptionChainingTest.test_raise_subclass_with_weakref_supportcs�fdd�}|�||�|�t|��d�|j�Wd�n1s#wY|�t|��t�d|j�Wd�n1s@wY|�t|��d�|j�Wd�n1s\wY|�t|��t�d|j�Wd�dS1szwYdS)Ncs��rr�r�r�r�rrr���z:ExceptionChainingTest.check_not_wrapped.<locals>.raise_obj�	str inputr�)r�r"r�rZr�rHrJ)rr�r�r�rr�r�check_not_wrapped�s���"�z'ExceptionChainingTest.check_not_wrappedcC� Gdd�dt�}|�|d�dS)Nc@r)zKExceptionChainingTest.test_init_override_is_not_wrapped.<locals>.CustomInitcSsdSrrrxrrrr:�r�zTExceptionChainingTest.test_init_override_is_not_wrapped.<locals>.CustomInit.__init__N)r#r$r%r:rrrr�
CustomInit�rrr^�r�r�)rrrrr�!test_init_override_is_not_wrapped��z7ExceptionChainingTest.test_init_override_is_not_wrappedcCr�)NcseZdZ�fdd�Z�ZS)zIExceptionChainingTest.test_new_override_is_not_wrapped.<locals>.CustomNewcst��|�Sr)rQ�__new__)�clsrYrrr�szQExceptionChainingTest.test_new_override_is_not_wrapped.<locals>.CustomNew.__new__)r#r$r%rrprrrYr�	CustomNew�srr^r)rrrrr� test_new_override_is_not_wrapped�rz6ExceptionChainingTest.test_new_override_is_not_wrappedcCs(d}t|�}d|_|�|d�|��dS)NzThis should NOT be wrappedrFz^{}$)r��attrr�r�)rr�rXrrr�&test_instance_attribute_is_not_wrapped�sz<ExceptionChainingTest.test_instance_attribute_is_not_wrappedcCs|�td�d�dS)NrF�1�r�r�rxrrr�test_non_str_arg_is_not_wrapped�sz5ExceptionChainingTest.test_non_str_arg_is_not_wrappedcCsd}|�tddd�|�dS)Nz^\('a', 'b', 'c'\)$r�r�rer)r�msg_rerrr�!test_multiple_args_is_not_wrapped�sz7ExceptionChainingTest.test_multiple_args_is_not_wrappedcCs�d�|j�}|�t|��d�|j�Wd�n1swY|�t|��t�d|j�Wd�n1s:wY|�t|��d�|j�Wd�n1sVwY|�t|��t�d|j�Wd�dS1stwYdS)Nz^unknown encoding: {}$r�r�)r�r�r"r;rZrHrJr�rrr�%test_codec_lookup_failure_not_wrapped�s���"�z;ExceptionChainingTest.test_codec_lookup_failure_not_wrappedcCs�dd�}dd�}|�||�t�d|j�}|�|d�t�d|j�}|�|d�d}|�|j�}|�t|��d�|j�Wd�n1sGwYd	}|�|j�}|�t|��d
�|j�Wd�dS1slwYdS)Nc_�dS)N)�
not bytes!rrr�rrr�
encode_to_str�r�zSExceptionChainingTest.test_unflagged_non_text_codec_handling.<locals>.encode_to_strc_r)N)�not str!rrr�rrr�decode_to_bytes�r�zUExceptionChainingTest.test_unflagged_non_text_codec_handling.<locals>.decode_to_bytesrrzd^{!r} encoder returned 'str' instead of 'bytes'; use codecs.encode\(\) to encode to arbitrary types$r�zd^{!r} decoder returned 'bytes' instead of 'str'; use codecs.decode\(\) to decode to arbitrary types$r�)	r�rHrZr�rrJr�r"r�)rrrrr�decodedr�r�rrr�&test_unflagged_non_text_codec_handling�s"�"�z<ExceptionChainingTest.test_unflagged_non_text_codec_handlingN)r#r$r%r�r�r��
contextlib�contextmanagerr�r�r�r�r�r�r�r�r�rrr	rrrrrrrrr�<s(

r��win32z"code pages are specific to Windowsc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zejdddd�dd��Zejdddd�dd ��Zd!S)"�CodePageTest��cCsL|�ttjdd�|�ttjdd�|�ttjdd�|�ttjdd�dS)Nrr��ar�)r�r�rH�code_page_encode�code_page_decode�OSErrorrxrrr�test_invalid_code_page�rz#CodePageTest.test_invalid_code_pagec	CsJ|�tdtjdd�|�tdtjdddd�|�tdtj|jddd�dS)	Nr���ÿs�r`T�CP_UTF8r�)r"r�rHrr�rr#rxrrr�test_code_page_name�s���z CodePageTest.test_code_page_namecCs�|D]a\}}}|durXz
t�|||d�}Wnty2}z|�d||||f�WYd}~nd}~ww|�|d|d||||d|f�|�|dd�|�|dt|��q|�ttj|||d�qdS)NTz2Unable to decode %a from "cp%s" with errors=%r: %srz%a.decode("cp%s", %r)=%a != %arF)	rHrr��failr�assertGreaterEqual�assertLessEqualr	r�)rr1r5r6r�r7r�errrrr�check_decode�s*
�������zCodePageTest.check_decodecCs�|D]W\}}}|durOz	t�|||�}Wnty1}z|�d||||f�WYd}~nd}~ww|�|d|d||||d|f�|�|dt|��q|�ttj|||�qdS)Nz0Unable to encode %a to "cp%s" with errors=%r: %srz%a.encode("cp%s", %r)=%a != %arF)rHrr�r%rr	r�)rr1r5�textr�r7rrr(rrr�check_encode�s(
�����
��zCodePageTest.check_encodecC�|�dd�|�dd�dS)Nr!)�r4r`r$)�d騾r`����)r"r`N)r:r�r�)r:r�s[y])u[€]r�s[?])r:r�s[\xff])r:r�s)[\N{LATIN SMALL LETTER Y WITH DIAERESIS}])r:r�s[&#255;])u�r`N)�[�]rJr7)r0r�N)�r$r`r4)r/r`r.)r7r`N)r7r�r�)r7r�u[�])r7r�z[\xff])r7rJr0)r7r�N)��abcr`N)r2r�zabc)r2r�u�abc)r2r�z\x81abc�r+r)rxrrr�
test_cp932szCodePageTest.test_cp932cCr,)Ni�)r-)�é€r`��)r"r`r�)�Łr`N)r7r�r])r7r��L)��rJ��)r9r�N)r1)r6r`r5)r�r`r"r3rxrrr�test_cp1252)szCodePageTest.test_cp1252cCs d}|�|d�|�|d�dS)N��)r-)r5r`�+AOkgrA-)r1r`�+2//f/w-)r�r`�+3IA-)r�r`�+//0-)r1)r=r`r5)r>r`r1)r?r`r�)r@r`r�)s[+/]r`r�)r7r`r:r3�rr1rrr�test_cp_utf7;szCodePageTest.test_cp_utf7cCs,|�dd�|�|jd�|�|jd�dS)Nr!))���r��騾)rCr�u�騾))��􏿿r�r1)rEr�u�􏿿))�	[􏿿�]r�s[􏿿])rFr�s[􏿿?])r)r#r+rxrrr�test_multibyte_encodingOsz$CodePageTest.test_multibyte_encodingcCs�tjr	tj�d�ddddddgtdd	��d
�RD]}t|�r.|�t�	|d�dd
|���qtjr8t
d|���q|�t�	dd�d�dS)Nr�i,�i-�i.�i1�i3�i5�i��i��r<r$r!r1z  skipping cp=r�)u	r%)r�verboser�stdoutr=rGr5rrHr�printrArrr�test_code_page_decode_flags]s�
���z(CodePageTest.test_code_page_decode_flagscCstt�dddd�}|�|d�t�dddd�}|�|d�t�dddd�}|�|d	�t�dd
dd�}|�|d�dS)Nr!��r`FrSs��)rDrs��)u騾騾r�r$r!)rHrr)rrrrr�test_incrementalps"���zCodePageTest.test_incrementalcCsLtjddd��t�d�}|�|jd�Wd�dS1swYdS)Nz_winapi.GetACPr�)�return_value�cp123r�)rr�rHr�rrD)r�codecrrr�test_mbcs_alias�s
"�zCodePageTest.test_mbcs_aliasl�F)r@�memuse�dry_runcCs�d|ddd}|�t|�|d�t�d|dd�}|�|dt|��~|�t|d	�|d�|�|d	dd
�d�|�|d	dd�d
�dS)Ns01234567r�rFs
��������rr!rJTrr��
0123456701i��u(6701234567�����������rr	rHr�rr@rrrrrr�test_large_input�s��zCodePageTest.test_large_inputr�cCs�d|d}|�t|�|dd�t�d|dd�}|�|dt|��~|�t|d�|�|�|ddd�d	�|�|dd
d�d�dS)Ns
0123456턀r�r�rr�TrFru0123456턀01i����u56턀0123456턀rVrWrrr�test_large_utf8_input�sz"CodePageTest.test_large_utf8_inputN)r#r$r%r#r r$r)r+r4r;rBrGrKrMrQr�
bigmemtestrXrYrrrrr�s"!
rc@r�)�	ASCIITestcC�|�d�d�d�dS)Nr�rssabc123r rxrrrr��r�zASCIITest.test_encodec	C�XdD]'\}}}|j|||d��|�|�d|�|�Wd�n1s$wYqdS)N))�	[€ÿ€]r�r�)r^r�s[???])r^r�s[&#128;&#255;&#8364;])u
[€ÿ€򫳞]r�s[\x80\xff\u20ac\U000abcde]�rKrJrIrLrs�rNrrZrOrrr�test_encode_error�������zASCIITest.test_encode_errorcC�<|�t��d�dd�Wd�dS1swYdS)Nu�ÿrsrJ�r�r�rZrxrrr�!test_encode_surrogateescape_error��"�z+ASCIITest.test_encode_surrogateescape_errorcCr\)Nr$rsr4)rrJrxrrrr��r�zASCIITest.test_decodec	Cr])NrHrLrsr�rOrrrrP�s�����zASCIITest.test_decode_errorN)r#r$r%r�rarer�rPrrrrr[�sr[c@r�)
�
Latin1Testc	C�RdD]$\}}|j||d��|�|�d�|�Wd�n1s!wYqdS)N))r4r$)u€éÿs��r�r7�latin1r`�rr�r7rrrr������zLatin1Test.test_encodec	Cr])N))�[€�]r�r�)rmr�s[??])u	[€򫳞]r�s[\u20ac\U000abcde])rmr�s[&#8364;&#56448;]r_rLrjr`rOrrr�test_encode_errors�rbzLatin1Test.test_encode_errorscCrc)Nu�€rjrJrdrxrrrre�rfz,Latin1Test.test_encode_surrogateescape_errorc	Crh)N))r$r4)rIu[€ÿ]rirjr�rkrrrr��rlzLatin1Test.test_decodeN)r#r$r%r�rnrer�rrrrrg�s
rgc@r�)
�StreamRecoderTestcCsRt��}t�d�}t�||j|jtjj	tjj
�}|�ddg�|�|�
�d�dS)Nrsr�bsab)rurvrHr�rurZrJrrsr^r_�
writelinesrr�)r�biorP�srrrr�test_writelines�s
�z!StreamRecoderTest.test_writelinescCs^t��}t�d�}t�||j|jtjj	tjj
�}d}|�|�d��|�|�
�|�d��dS)NrjuàñérC)rurvrHr�rurZrJrr�r^r_r=rr�)rrrrPrsr*rrr�
test_write
s
�zStreamRecoderTest.test_writecCs|t�d�d��}t�|dd�}|�|��d�|�d�|�|��d�|�|��d�|�|��d�|�|��d�dS)	Nzline1
line2
line3
r,rCsline1
rsline2
sline3
r])rurvrZrHrgrr|r�rrrrsrrr�test_seeking_read
s
z#StreamRecoderTest.test_seeking_readcCs�t�d�d��}t�|dd�}|�d�|�d�|�|��d�|�d�|�|��d�|�|��d	�|�|��d�dS)
Nz
123456789
r,rCrs
abc
s789
rs1
sabc
)	rurvrZrHrgrr=rr|rvrrr�test_seeking_write
s


z$StreamRecoderTest.test_seeking_writeN)r#r$r%rtrurwrxrrrrro�s
rozneed _testcapi modulec@s�eZdZdZe��ZdZdZdZ	ddd�Z
dd	�Zd
d�Zdd
�Z
dd�Zdd�Zddd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS) �LocaleCodecTestzD
    Test indirectly _Py_DecodeUTF8Ex() and _Py_EncodeUTF8Ex().
    )rsuulatin1:§éuu255:ÿu
UCS:é€􏿿usurrogates:��)s
blatin1:��sb255:�u��r`cC�t�|d|�Sr?)r�EncodeLocaleEx)rr*r�rrrrZ2
�zLocaleCodecTest.encodec
Cs�|jD]]}|j|d��Mz	|�|j|�}Wn/tyD|�t��}|�||�Wd�n1s2wYt|j�}|�	|d�Yn
w|�||�}|�
||�Wd�n1s[wYqdS)N)r*z!encode error: pos=[0-9]+, reason=)�STRINGSrNrZ�ENCODINGr�r�r�r�rS�assertRegexr)rr�r*r7rW�errmsgrrrrr�check_encode_strings5
s"
�
�����z$LocaleCodecTest.check_encode_stringscC�|�d�dS�Nr`�r�rxrrr�test_encode_strictC
r|z"LocaleCodecTest.test_encode_strictcCr��NrJr�rxrrr�test_encode_surrogateescapeF
r|z+LocaleCodecTest.test_encode_surrogateescapec
C�fz|�dd�Wn#ty+}zt|�dkr |�|j�d��n�WYd}~nd}~ww|�d�dS)Nr^r��unsupported error handlerz4 encoder doesn't support surrogatepass error handler)rZr�r�rWr~r��rrXrrr�test_encode_surrogatepassI
����z)LocaleCodecTest.test_encode_surrogatepasscC�L|�t��}|�dd�Wd�n1swY|�t|j�d�dS)Nr^r�r�)r�r�rZrr�rS�rrWrrr�%test_encode_unsupported_error_handlerU
��z5LocaleCodecTest.test_encode_unsupported_error_handlercCrzr?)r�DecodeLocaleEx)rrrr�rrrrJZ
r|zLocaleCodecTest.decodec
CsX|jdk}|r
d}nd}t|j�}|jD]2}z|�|j|�}||vr'|�|�Wnty3d}Ynw|rF|�|jd�}||krF|�|�q|D]`}|j|d��Pz	|�|j|�}Wn2t	y�|�
t��}	|�||�Wd�n1sxwYt|	j
�}
|�|
�d�|
�Yn
w|�||�}|�||�Wd�n1s�wYqIdS)NrCrJr`r�)rrzdecode error: )r~r��
BYTES_STRINGSr}rZr}r�rNrJr�r�r�r�rSrO�
startswithr)rr��is_utf8�
encode_errors�stringsr*rr�encoded2r7rWr�rrrr�check_decode_strings]
sH



��
��
�����z$LocaleCodecTest.check_decode_stringscCr�r��r�rxrrr�test_decode_strict
r|z"LocaleCodecTest.test_decode_strictcCr�r�r�rxrrr�test_decode_surrogateescape�
r|z+LocaleCodecTest.test_decode_surrogateescapec
Cr�)Nr]r�r�z4 decoder doesn't support surrogatepass error handler)rJr�r�rWr~r�r�rrr�test_decode_surrogatepass�
r�z)LocaleCodecTest.test_decode_surrogatepasscCr�)Nr]r�r�)r�r�rJrr�rSr�rrr�%test_decode_unsupported_error_handler�
r�z5LocaleCodecTest.test_decode_unsupported_error_handlerNr_)r#r$r%rCr�getfilesystemencodingr~r}r��
SURROGATESrZr�r�r�r�r�rJr�r�r�r�r�rrrrry%
s$

"ryc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�	Rot13Testz"Test the educational ROT-13 codec.cC�t�dd�}|�|d�dS)NzCaesar liked ciphers�rot-13zPnrfne yvxrq pvcuref)rHrZr)r�
ciphertextrrrr��
r�zRot13Test.test_encodecCr�)Nz
Rg gh, Oehgr?r�z
Et tu, Brute?)rHrJr)r�	plaintextrrrr��
r�zRot13Test.test_decodecC�&t�d��}|�d�}|�|d�dS)Nr�zABBA nag Cheryl BakerzNOON ant Purely Onxre)rHrYrZr)rr-r�rrrr.�
�
z!Rot13Test.test_incremental_encodecCr�)Nr�zterra Ares envy thazgreen Nerf rail gun)rHrIrJr)rr*r�rrrr+�
r�z!Rot13Test.test_incremental_decodeN)r#r$r%rCr�r�r.r+rrrrr��
sr�c@seZdZdZdd�ZdS)�
Rot13UtilTestz�Test the ROT-13 codec via rot13 function,
    i.e. the user has done something like:
    $ echo "Hello World" | python -m encodings.rot_13
    cCsBt�d�}t��}tj�||�|�d�|��}|�|d�dS)Nz)Gb or, be abg gb or, gung vf gur dhrfgvbarz)To be, or not to be, that is the question)rur�rr�r�rrBr)r�infile�outfile�
plain_textrrr�test_rot13_func�
s

�zRot13UtilTest.test_rot13_funcN)r#r$r%rCr�rrrrr��
sr�c@s eZdZdZdd�Zdd�ZdS)�CodecNameNormalizationTestzTest codec name normalizationcs�d�d���fdd�}t�|�|�tj|�|��t�d��|��t�d��|��t�d��|��t�d��|��t�d	��|��t�d
��|��t�d��|��t�d��|��t�d
��|��t�d��dS)N)rFrr%r�)NNNNcs|dkr�S�S)N�aaa_8rr!��FOUND�	NOT_FOUNDrrrE�
szFCodecNameNormalizationTest.test_codecs_lookup.<locals>.search_functionr�zAAA-8zAAA---8zAAA   8u
aaaé€-8zAAA.8zAAA...8zBBB-8zBBB.8uaé€-8)rHr<r"rBrr�)rrErr�r�test_codecs_lookup�
s
z-CodecNameNormalizationTest.test_codecs_lookupcCsjtj}|�|d�d�|�|d�d�|�|d�d�|�|d�d�|�|d�d�|�|d�d�dS)Nr�uutfé€􏿿-8zutf   8zUTF 8�UTF_8zutf.8zutf...8)r�normalize_encodingr)r�	normalizerrr�!test_encodings_normalize_encoding�
sz<CodecNameNormalizationTest.test_encodings_normalize_encodingN)r#r$r%rCr�r�rrrrr��
sr��__main__)TrHrrurSrr�rr�testr�test.supportrrr�ImportErrorr.�SIZEOF_WCHAR_T�sizeof�c_wcharrr5rTr6rEr\�TestCaser�r	rrr+r?rBrqr�r�r�r�r�rSr	rJ�reprr�rr	rr0r�r�rrHr}rr�rr:rBrPr{rr�r�r�r�r�r�r�r�r�r�r��platformrr[rgro�skipIfryr�r�r�r#�mainrrrr�<module>s���"V`..W,,^VJg�!]h

�y)S"9��
�

�W'%.q
%�

Youez - 2016 - github.com/yon3zu
LinuXploit