403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/pickletester.cpython-36.opt-2.pyc
3

�
�^�,@s~ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZddlmZmZmZmZmZmZmZddlmZe	jejd�kd�Zeejd	�Zd
d�Zdd
�ZGdd�dej �Z!Gdd�d�Z"Gdd�d�Z#Gdd�de#�Z$Gdd�de#�Z%Gdd�de&�Z'Gdd�de&�Z(ddl)Z)e#e)_#de#_*e$e)_$de$_*e%e)_%de%_*e'e)_'de'_*e(e)_(de(_*Gdd�de+�Z,Gdd �d e#�Z-Gd!d"�d"e.�Z/Gd#d$�d$e&e/d%�Z0Gd&d'�d'e.�Z1d(d)�Z2d*Z3d+Z4d,Z5d-Z6d.Z7d/Z8d0Z9d1Z:d2Z;d3Z<d4Z=d5Z>d6Z?d7Z@eAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe[e\e]e^e_e`eaebecedeeefegeheiejekelf,Zmd8Znd9Zod:d;�ZpGd<d=�d=e	jq�ZrGd>d?�d?e	jq�ZsGd@dA�dAe	jq�ZtGdBdC�dCe&�ZuGdDdE�dEe&�ZvGdFdG�dGe&�ZwGdHdI�dIe&�ZxGdJdK�dKe&�ZyGdLdM�dMe&�ZzGdNdO�dOe&�Z{GdPdQ�dQe+�Z|GdRdS�dSe}�Z~GdTdU�dUe�Z�GdVdW�dWe��Z�GdXdY�dYe��Z�GdZd[�d[e��Z�Gd\d]�d]e��Z�Gd^d_�d_e��Z�Gd`da�dae��Z�Gdbdc�dce��Z�e|e~e�e�e�e�e�e�e�e�g
Z�Gddde�dee��Z�Gdfdg�dge+�a�Gdhdi�dit��Z�Gdjdk�dkt��Z�Gdldm�dm�Z�Gdndo�doe	jq�Z�Gdpdq�dqe	jq�Z�Gdrds�dse	jq�Z�Gdtdu�due	jq�Z�dvZ�Gdwdx�dxe&�Z�Gdydz�dze&�Z�Gd{d|�d|e	jq�Z�e�dk�rzdd}lm�Z�ep�Z�x�eejd	�D]�Z�ej�e�e��Z�e�d~j�e���x<ede�e��d�D](Z�e�e�e�e�d��Z�e�d�j�e����qWe�d��e��e�d�j�e���e�d�j�e���e�e��e�d��e���q�WdS)��N)�SimpleCookie)�support)�
TestFailed�TESTFN�run_with_locale�
no_tracing�_2G�_4G�
bigmemtest)�bytes_types�� z(test is only meaningful on 32-bit builds�cCs2x,tj|�D]\}}}|j|jd�krdSqWdS)Nzlatin-1TF)�pickletools�genops�code�decode)r�pickle�op�dummy�r�1/opt/alt/python36/lib64/python3.6/pickletester.py�opcode_in_pickle srcCs:d}x0tj|�D]"\}}}|j|jd�kr|d7}qW|S)Nrzlatin-1r)rrrr)rr�nrrrrr�count_opcode's
rc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�UnseekableIOcGst�dS)N)�NotImplementedError)�self�argsrrr�peek0szUnseekableIO.peekcCsdS)NFr)rrrr�seekable3szUnseekableIO.seekablecGs
tj�dS)N)�io�UnsupportedOperation)rrrrr�seek6szUnseekableIO.seekcCs
tj�dS)N)r!r")rrrr�tell9szUnseekableIO.tellN)�__name__�
__module__�__qualname__rr r#r$rrrrr/src@seZdZdd�Zdd�ZdS)�ExtensionSavercCsB||_|tjkr8tj||_tj|jd|jd|�nd|_dS)Nrr)r�copyreg�_inverted_registry�pair�remove_extension)rrrrr�__init__Js

zExtensionSaver.__init__cCsX|j}tjj|�}|dk	r0tj|d|d|�|j}|dk	rTtj|d|d|�dS)Nrr)rr)r*�getr,r+�
add_extension)rrZcurpairr+rrr�restoreSszExtensionSaver.restoreN)r%r&r'r-r0rrrrr(Gs	r(c@seZdZdd�ZdS)�CcCs|j|jkS)N)�__dict__)r�otherrrr�__eq__]szC.__eq__N)r%r&r'r4rrrrr1\sr1c@seZdZdd�ZdS)�DcCsdS)Nr)r�argrrrr-asz
D.__init__N)r%r&r'r-rrrrr5`sr5c@seZdZdd�ZdS)�EcCsfS)Nr)rrrr�__getinitargs__eszE.__getinitargs__N)r%r&r'r8rrrrr7dsr7c@seZdZdS)�HN)r%r&r'rrrrr9hsr9c@seZdZdd�Zdd�ZdS)�KcCs
||_dS)N)�value)rr;rrrr-msz
K.__init__cCst|jffS)N)r:r;)rrrr�
__reduce__pszK.__reduce__N)r%r&r'r-r<rrrrr:lsr:�__main__c@seZdZdd�ZdS)�myintcCst|�|_dS)N)�str)r�xrrrr-�szmyint.__init__N)r%r&r'r-rrrrr>�sr>c@seZdZdd�Zdd�ZdS)�initargcCs||_||_dS)N)�a�b)rrBrCrrrr-�szinitarg.__init__cCs|j|jfS)N)rBrC)rrrrr8�szinitarg.__getinitargs__N)r%r&r'r-r8rrrrrA�srAc@seZdZdS)�	metaclassN)r%r&r'rrrrrD�srDc@seZdZdS)�
use_metaclassN)r%r&r'rrrrrE�srE)rDc@seZdZdd�Zdd�ZdS)�pickling_metaclasscCst|�t|�ko|j|jkS)N)�type�reduce_args)rr3rrrr4�szpickling_metaclass.__eq__cCs
t|jfS)N)�create_dynamic_classrH)rrrrr<�szpickling_metaclass.__reduce__N)r%r&r'r4r<rrrrrF�srFcCst||t��}||f|_|S)N)rF�dictrH)�name�bases�resultrrrrI�s
rIs;(lp0
L0L
aL1L
aF2.0
ac__builtin__
complex
p1
(F3.0
F0.0
tp2
Rp3
aL1L
aL-1L
aL255L
aL-255L
aL-256L
aL65535L
aL-65535L
aL-65536L
aL2147483647L
aL-2147483647L
aL-2147483648L
a(Vabc
p4
g4
ccopy_reg
_reconstructor
p5
(c__main__
C
p6
c__builtin__
object
p7
Ntp8
Rp9
(dp10
Vfoo
p11
L1L
sVbar
p12
L2L
sbg9
tp13
ag13
aL5L
a.an    0: (    MARK
    1: l        LIST       (MARK at 0)
    2: p    PUT        0
    5: L    LONG       0
    9: a    APPEND
   10: L    LONG       1
   14: a    APPEND
   15: F    FLOAT      2.0
   20: a    APPEND
   21: c    GLOBAL     '__builtin__ complex'
   42: p    PUT        1
   45: (    MARK
   46: F        FLOAT      3.0
   51: F        FLOAT      0.0
   56: t        TUPLE      (MARK at 45)
   57: p    PUT        2
   60: R    REDUCE
   61: p    PUT        3
   64: a    APPEND
   65: L    LONG       1
   69: a    APPEND
   70: L    LONG       -1
   75: a    APPEND
   76: L    LONG       255
   82: a    APPEND
   83: L    LONG       -255
   90: a    APPEND
   91: L    LONG       -256
   98: a    APPEND
   99: L    LONG       65535
  107: a    APPEND
  108: L    LONG       -65535
  117: a    APPEND
  118: L    LONG       -65536
  127: a    APPEND
  128: L    LONG       2147483647
  141: a    APPEND
  142: L    LONG       -2147483647
  156: a    APPEND
  157: L    LONG       -2147483648
  171: a    APPEND
  172: (    MARK
  173: V        UNICODE    'abc'
  178: p        PUT        4
  181: g        GET        4
  184: c        GLOBAL     'copy_reg _reconstructor'
  209: p        PUT        5
  212: (        MARK
  213: c            GLOBAL     '__main__ C'
  225: p            PUT        6
  228: c            GLOBAL     '__builtin__ object'
  248: p            PUT        7
  251: N            NONE
  252: t            TUPLE      (MARK at 212)
  253: p        PUT        8
  256: R        REDUCE
  257: p        PUT        9
  260: (        MARK
  261: d            DICT       (MARK at 260)
  262: p        PUT        10
  266: V        UNICODE    'foo'
  271: p        PUT        11
  275: L        LONG       1
  279: s        SETITEM
  280: V        UNICODE    'bar'
  285: p        PUT        12
  289: L        LONG       2
  293: s        SETITEM
  294: b        BUILD
  295: g        GET        9
  298: t        TUPLE      (MARK at 172)
  299: p    PUT        13
  303: a    APPEND
  304: g    GET        13
  308: a    APPEND
  309: L    LONG       5
  313: a    APPEND
  314: .    STOP
highest protocol among opcodes = 0
s�]q(KKG@c__builtin__
complex
q(G@GtqRqKJ����K�J���J���M��J��J��J���J�J�(Xabcqhccopy_reg
_reconstructor
q(c__main__
C
qc__builtin__
object
qNtqRq	}q
(XfooqKXbarqKubh	tq
h
Ke.a    0: ]    EMPTY_LIST
    1: q    BINPUT     0
    3: (    MARK
    4: K        BININT1    0
    6: K        BININT1    1
    8: G        BINFLOAT   2.0
   17: c        GLOBAL     '__builtin__ complex'
   38: q        BINPUT     1
   40: (        MARK
   41: G            BINFLOAT   3.0
   50: G            BINFLOAT   0.0
   59: t            TUPLE      (MARK at 40)
   60: q        BINPUT     2
   62: R        REDUCE
   63: q        BINPUT     3
   65: K        BININT1    1
   67: J        BININT     -1
   72: K        BININT1    255
   74: J        BININT     -255
   79: J        BININT     -256
   84: M        BININT2    65535
   87: J        BININT     -65535
   92: J        BININT     -65536
   97: J        BININT     2147483647
  102: J        BININT     -2147483647
  107: J        BININT     -2147483648
  112: (        MARK
  113: X            BINUNICODE 'abc'
  121: q            BINPUT     4
  123: h            BINGET     4
  125: c            GLOBAL     'copy_reg _reconstructor'
  150: q            BINPUT     5
  152: (            MARK
  153: c                GLOBAL     '__main__ C'
  165: q                BINPUT     6
  167: c                GLOBAL     '__builtin__ object'
  187: q                BINPUT     7
  189: N                NONE
  190: t                TUPLE      (MARK at 152)
  191: q            BINPUT     8
  193: R            REDUCE
  194: q            BINPUT     9
  196: }            EMPTY_DICT
  197: q            BINPUT     10
  199: (            MARK
  200: X                BINUNICODE 'foo'
  208: q                BINPUT     11
  210: K                BININT1    1
  212: X                BINUNICODE 'bar'
  220: q                BINPUT     12
  222: K                BININT1    2
  224: u                SETITEMS   (MARK at 199)
  225: b            BUILD
  226: h            BINGET     9
  228: t            TUPLE      (MARK at 112)
  229: q        BINPUT     13
  231: h        BINGET     13
  233: K        BININT1    5
  235: e        APPENDS    (MARK at 3)
  236: .    STOP
highest protocol among opcodes = 1
s��]q(KKG@c__builtin__
complex
qG@G�qRqKJ����K�J���J���M��J��J��J���J�J�(Xabcqhc__main__
C
q)�q}q(XfooqKXbarq	Kubhtq
h
Ke.u�    0: € PROTO      2
    2: ]    EMPTY_LIST
    3: q    BINPUT     0
    5: (    MARK
    6: K        BININT1    0
    8: K        BININT1    1
   10: G        BINFLOAT   2.0
   19: c        GLOBAL     '__builtin__ complex'
   40: q        BINPUT     1
   42: G        BINFLOAT   3.0
   51: G        BINFLOAT   0.0
   60: †     TUPLE2
   61: q        BINPUT     2
   63: R        REDUCE
   64: q        BINPUT     3
   66: K        BININT1    1
   68: J        BININT     -1
   73: K        BININT1    255
   75: J        BININT     -255
   80: J        BININT     -256
   85: M        BININT2    65535
   88: J        BININT     -65535
   93: J        BININT     -65536
   98: J        BININT     2147483647
  103: J        BININT     -2147483647
  108: J        BININT     -2147483648
  113: (        MARK
  114: X            BINUNICODE 'abc'
  122: q            BINPUT     4
  124: h            BINGET     4
  126: c            GLOBAL     '__main__ C'
  138: q            BINPUT     5
  140: )            EMPTY_TUPLE
  141:          NEWOBJ
  142: q            BINPUT     6
  144: }            EMPTY_DICT
  145: q            BINPUT     7
  147: (            MARK
  148: X                BINUNICODE 'foo'
  156: q                BINPUT     8
  158: K                BININT1    1
  160: X                BINUNICODE 'bar'
  168: q                BINPUT     9
  170: K                BININT1    2
  172: u                SETITEMS   (MARK at 147)
  173: b            BUILD
  174: h            BINGET     6
  176: t            TUPLE      (MARK at 113)
  177: q        BINPUT     10
  179: h        BINGET     10
  181: K        BININT1    5
  183: e        APPENDS    (MARK at 5)
  184: .    STOP
highest protocol among opcodes = 2
s��]q(KKG@cbuiltins
complex
qG@G�qRqKJ����K�J���J���M��J��J��J���J�J�(Xabcqhc__main__
C
q)�q}q(XbarqKXfooq	Kubhtq
h
Ke.u�    0: € PROTO      3
    2: ]    EMPTY_LIST
    3: q    BINPUT     0
    5: (    MARK
    6: K        BININT1    0
    8: K        BININT1    1
   10: G        BINFLOAT   2.0
   19: c        GLOBAL     'builtins complex'
   37: q        BINPUT     1
   39: G        BINFLOAT   3.0
   48: G        BINFLOAT   0.0
   57: †     TUPLE2
   58: q        BINPUT     2
   60: R        REDUCE
   61: q        BINPUT     3
   63: K        BININT1    1
   65: J        BININT     -1
   70: K        BININT1    255
   72: J        BININT     -255
   77: J        BININT     -256
   82: M        BININT2    65535
   85: J        BININT     -65535
   90: J        BININT     -65536
   95: J        BININT     2147483647
  100: J        BININT     -2147483647
  105: J        BININT     -2147483648
  110: (        MARK
  111: X            BINUNICODE 'abc'
  119: q            BINPUT     4
  121: h            BINGET     4
  123: c            GLOBAL     '__main__ C'
  135: q            BINPUT     5
  137: )            EMPTY_TUPLE
  138:          NEWOBJ
  139: q            BINPUT     6
  141: }            EMPTY_DICT
  142: q            BINPUT     7
  144: (            MARK
  145: X                BINUNICODE 'bar'
  153: q                BINPUT     8
  155: K                BININT1    2
  157: X                BINUNICODE 'foo'
  165: q                BINPUT     9
  167: K                BININT1    1
  169: u                SETITEMS   (MARK at 144)
  170: b            BUILD
  171: h            BINGET     6
  173: t            TUPLE      (MARK at 110)
  174: q        BINPUT     10
  176: h        BINGET     10
  178: K        BININT1    5
  180: e        APPENDS    (MARK at 5)
  181: .    STOP
highest protocol among opcodes = 2
s����]�(KKG@�builtins��complex���G@G��R�KJ����K�J���J���M��J��J��J���J�J�(�abc�h�__main__��C���)��}�(�bar�K�foo�Kubh
t�hKe.u�    0: € PROTO      4
    2: • FRAME      168
   11: ]    EMPTY_LIST
   12: ” MEMOIZE
   13: (    MARK
   14: K        BININT1    0
   16: K        BININT1    1
   18: G        BINFLOAT   2.0
   27: Œ     SHORT_BINUNICODE 'builtins'
   37: ”     MEMOIZE
   38: Œ     SHORT_BINUNICODE 'complex'
   47: ”     MEMOIZE
   48: “     STACK_GLOBAL
   49: ”     MEMOIZE
   50: G        BINFLOAT   3.0
   59: G        BINFLOAT   0.0
   68: †     TUPLE2
   69: ”     MEMOIZE
   70: R        REDUCE
   71: ”     MEMOIZE
   72: K        BININT1    1
   74: J        BININT     -1
   79: K        BININT1    255
   81: J        BININT     -255
   86: J        BININT     -256
   91: M        BININT2    65535
   94: J        BININT     -65535
   99: J        BININT     -65536
  104: J        BININT     2147483647
  109: J        BININT     -2147483647
  114: J        BININT     -2147483648
  119: (        MARK
  120: Œ         SHORT_BINUNICODE 'abc'
  125: ”         MEMOIZE
  126: h            BINGET     6
  128: Œ         SHORT_BINUNICODE '__main__'
  138: ”         MEMOIZE
  139: Œ         SHORT_BINUNICODE 'C'
  142: ”         MEMOIZE
  143: “         STACK_GLOBAL
  144: ”         MEMOIZE
  145: )            EMPTY_TUPLE
  146:          NEWOBJ
  147: ”         MEMOIZE
  148: }            EMPTY_DICT
  149: ”         MEMOIZE
  150: (            MARK
  151: Œ             SHORT_BINUNICODE 'bar'
  156: ”             MEMOIZE
  157: K                BININT1    2
  159: Œ             SHORT_BINUNICODE 'foo'
  164: ”             MEMOIZE
  165: K                BININT1    1
  167: u                SETITEMS   (MARK at 150)
  168: b            BUILD
  169: h            BINGET     10
  171: t            TUPLE      (MARK at 119)
  172: ”     MEMOIZE
  173: h        BINGET     14
  175: K        BININT1    5
  177: e        APPENDS    (MARK at 13)
  178: .    STOP
highest protocol among opcodes = 4
s%�c__builtin__
set
q]q(KKe�qRq.s%�c__builtin__
xrange
qKKK�qRq.s��cCookie
SimpleCookie
q)�qUkeyqcCookie
Morsel
q)�q(UcommentqUqUdomainqhUsecureqhUexpiresq	hUmax-ageq
hUversionqhUpathqhUhttponlyq
hu}q(Ucoded_valueqUvalueqhhhhubs}qb.s"�c__builtin__
set
q]qKa�qRq.s�cexceptions
?
q)Rq.sI�cexceptions
UnicodeEncodeError
q(UasciiqXfooqKKUbadqtqRq.c
Cs�t�}d|_d|_ddddg}d}d}d	}|jdd
|||d|||d|||dg�d
d
||f}|j|�|j|�|jd�|S)Nrrrg@g@y�i��i����abc�y@���)r1�foo�bar�extend�append)�cr@Zuint1maxZuint2maxZint4max�yrrr�create_datas 


rXc@s`eZdZe�ZdPdd�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zed$d%��Zed&d'��Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zed0d1��Zed2d3��Zd4d5�Zd6d7�Z d8d9�Z!d:d;�Z"d<d=�Z#ed>d?��Z$d@dA�Z%dBdC�Z&dDdE�Z'dFdG�Z(dHdI�Z)dJdK�Z*dLdM�Z+dNdO�Z,dS)Q�AbstractUnpickleTestsNcCs�|dkrdj||�}|j|||d�|jt|�t|�|d�t|d�rn|j|j|j|d�|j|j|j|d�t|d�r�|j|j	|j	|d�xJ|j	D]@}|jt||�t||�|d�|jt
||d�t
||d�|d�q�WdS)Nz{!r} is not a copy of {!r})�msgr2�	__slots__)�format�assertEqual�assertIsrG�hasattrZassertDictEqualr2ZassertIsNotZassertListEqualr[�getattr)r�objZobjcopyrZZslotrrr�assert_is_copy�s

z$AbstractUnpickleTests.assert_is_copycCs�|j|d��p|j|��Zy|j|�WnDtk
rl}z(tjdkrZtd||jj|f��WYdd}~XnXWdQRXWdQRXdS)N)�datarz%-32r - %s: %s)	�subTest�assertRaises�loads�
BaseExceptionr�verbose�print�	__class__r%)r�errorsrc�excrrr�check_unpickling_error�s
z,AbstractUnpickleTests.check_unpickling_errorcCs|j|j|jt��dS)N)rb�	_testdatarf�DATA0)rrrr�test_load_from_data0�sz*AbstractUnpickleTests.test_load_from_data0cCs|j|j|jt��dS)N)rbrnrf�DATA1)rrrr�test_load_from_data1�sz*AbstractUnpickleTests.test_load_from_data1cCs|j|j|jt��dS)N)rbrnrf�DATA2)rrrr�test_load_from_data2�sz*AbstractUnpickleTests.test_load_from_data2cCs|j|j|jt��dS)N)rbrnrf�DATA3)rrrr�test_load_from_data3�sz*AbstractUnpickleTests.test_load_from_data3cCs|j|j|jt��dS)N)rbrnrf�DATA4)rrrr�test_load_from_data4�sz*AbstractUnpickleTests.test_load_from_data4cCs�x�tfftdftffgD]z\}}|jjd�}djd|�}|j||�|j|��djd|�}|j||�|j|��djd|�}|j||�|j|��qWdS)Nr@�asciis(i__main__
X
p0
(dp1
b.�Xs(c__main__
X
qoq}qb.s�(c__main__
X
qoq}qb.)r@)r1r5r7r%�encode�replacerbrf)r�XrZxnameZpickle0Zpickle1Zpickle2rrr�test_load_classic_instance�s z0AbstractUnpickleTests.test_load_classic_instancecCsVd}dt|�jd�d}|j|�}|j||�dt|�jd�d}|jt|�dS)	Nr�?�Irys
.sJUNK
.ll����)r?r{rfrbrm�
ValueError)rZmaxint64rc�gotrrr�
test_maxint64�s
z#AbstractUnpickleTests.test_maxint64cCs\|jt�}|j|tddg��|jt�}|jt|�ttd���|jt|�ttd���|jt�}|jt|�t	�|jt|j
��dg�|j|djd�x:tD]2}t
jd|jjd��}|j|�}|jt|�|�q�W|jt
jdd	��}|jt|�t�|jt�}|jt|�t�|j|jd
�|j|jd�|j|jd�|j|jd�|j|jd�dS)NrrrrP�keyr;�?rys
StandardErrorrRZbad)rf�DATA_SETr]�set�DATA_XRANGErG�range�list�DATA_COOKIEr�keysr;�python2_exceptions_without_args�exception_pickler|r%r{r^�	Exception�
DATA_UEERR�UnicodeEncodeError�object�encoding�start�end�reason)r�loadedrlrcrrr�test_unpickle_from_2xs,





z+AbstractUnpickleTests.test_unpickle_from_2xcCsF|j|jddd�d�|j|jddd�d�|j|jddd�d�dS)NsS'a\x00\xa0'
.�bytes)r�sa�sUa�.s�Ua�.)r]rf)rrrr�test_load_python2_str_as_bytes&s


z4AbstractUnpickleTests.test_load_python2_str_as_bytescCsF|j|jddd�d�|j|jddd�d�|j|jddd�d�dS)Ns	V\u03c0
.r�)r�uπsXπ.s
�Xπ.)r]rf)rrrr� test_load_python2_unicode_as_str1s


z6AbstractUnpickleTests.test_load_python2_unicode_as_strcCs:|j|jtjtjdd�ddtjdd�dd�dS)Nz<Ii,�xr�)r�)r]rfrZ	BINSTRING�struct�pack�STOP)rrrr�#test_load_long_python2_str_as_bytes<sz9AbstractUnpickleTests.test_load_long_python2_str_as_bytescCs\|j|jd��|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�d�dS)NsN.s�.Ts�.FsI01
.sI00
.)ZassertIsNonerfr^)rrrr�test_constantsCs
z$AbstractUnpickleTests.test_constantscCs|jddd�}|j|d�dS)Ns�Uq.zkoi8-r)r��)rfr])r�emptyrrr�test_empty_bytestringJsz+AbstractUnpickleTests.test_empty_bytestringcCsd}|j|j|�d�dS)Ns	�C€.s€)r]rf)r�dumpedrrr�test_short_binbytesOsz)AbstractUnpickleTests.test_short_binbytescCsd}|j|j|�d�dS)Ns�B€.s€)r]rf)rr�rrr�
test_binbytesSsz#AbstractUnpickleTests.test_binbytescCsd}|jtjtf|�dS)Ns
�B����xyzq.)rmr�UnpicklingError�
OverflowError)rr�rrr�test_negative_32b_binbytesWsz0AbstractUnpickleTests.test_negative_32b_binbytescCsd}|jtjtf|�dS)Ns
�X����xyzq.)rmrr�r�)rr�rrr�test_negative_32b_binunicode^sz2AbstractUnpickleTests.test_negative_32b_binunicodecCsd}|j|j|�d�dS)Ns	��€.u€)r]rf)rr�rrr�test_short_binunicodeesz+AbstractUnpickleTests.test_short_binunicodecCs&|jtd�|jddg|jd��dS)Nsg0
p0�ds((Kdtp0
hl.)))r�)r�)rm�KeyErrorrbrf)rrrr�
test_misc_getis
z#AbstractUnpickleTests.test_misc_getcCsd}|j|j|�d�dS)Ns��€.s€)r]rf)rr�rrr�test_binbytes8nsz$AbstractUnpickleTests.test_binbytes8cCsd}|j|j|�d�dS)Ns��€.u€)r]rf)rr�rrr�test_binunicode8rsz&AbstractUnpickleTests.test_binunicode8cCsd}|jtjtf|�dS)Ns��€.)rmrr�r�)rr�rrr�test_large_32b_binbytes8vsz.AbstractUnpickleTests.test_large_32b_binbytes8cCsd}|jtjtf|�dS)Ns��€.)rmrr�r�)rr�rrr�test_large_32b_binunicode8|sz0AbstractUnpickleTests.test_large_32b_binunicode8cCs8d}|j|�}|j|gfd�|j|d|d�dS)Ns((lp100000
g100000
t.rrr)rfr]r^)r�pickled�	unpickledrrr�test_get�s
zAbstractUnpickleTests.test_getcCs8d}|j|�}|j|gfd�|j|d|d�dS)Ns(]q�h�t.rrr)rfr]r^)rr�r�rrr�test_binget�s
z!AbstractUnpickleTests.test_bingetcCs8d}|j|�}|j|gfd�|j|d|d�dS)Ns(]rjt.rrr)rfr]r^)rr�r�rrr�test_long_binget�s
z&AbstractUnpickleTests.test_long_bingetcCs8d}|j|�}|j|gfd�|j|d|d�dS)Ns((l2t.rrr)rfr]r^)rr�r�rrr�test_dup�s
zAbstractUnpickleTests.test_dupcCsd}|jt|�dS)NsVa
p-1
.)rmr�)rr�rrr�test_negative_put�sz'AbstractUnpickleTests.test_negative_putcCsd}|jt|�dS)Ns�Xar����.)rmr�)rr�rrr�test_negative_32b_binput�sz.AbstractUnpickleTests.test_negative_32b_binputcCs|jtd�dS)NsS'\'
.)rmr�)rrrr�test_badly_escaped_string�sz/AbstractUnpickleTests.test_badly_escaped_stringc
Cs>ddddddddd	d
ddd
g
}x|D]}|jtj|�q$WdS)NsS'
.sS"
.sS' 
.sS" 
.sS'"
.sS"'
.sS' ' 
.sS" " 
.sS ''
.sS ""
.sS 
.sS
.sS.)rmrr�)r�
badpickles�prrr�test_badly_quoted_string�s
z.AbstractUnpickleTests.test_badly_quoted_stringcCs4ddd	d
g}x"|D]\}}|j|j|�|�qWdS)N�S''
.r��S""
.�S"\n"
.�
�S'\n'
.)r�r�)r�r�)r�r�)r�r�)r]rf)rZgoodpicklesr��expectedrrr�test_correctly_quoted_string�sz2AbstractUnpickleTests.test_correctly_quoted_stringcCsd}|j|j|�d�dS)Ns��I42
.�*)r]rf)rr�rrr�test_frame_readline�sz)AbstractUnpickleTests.test_frame_readlinecCsd}|j|�}|jt|�t�|j|tdd��|jt|�ddddddg�d	}|j|j|�tj�d
}|j|j|�tj	�xBdD]:}d
|d}|j|�}|jt|�t
�|jt|�d�q�WxJdD]B}d|d}|j|�}|jt|�tj
�|j|tj
ddi��q�WdS)Ns�c__builtin__
xrange
KKK�R.r�r��rP�s�c__builtin__
reduce
.s�cwhichdb
whichdb
.�	Exception�
StandardErrors�cexceptions
s	
Uugh�R.Zugh�UserDict�IterableUserDicts
�(cUserDict
s
o}Udata}KKssb.)r�r�)r�r�)rfr^rGr�r]r��	functools�reduce�dbm�whichdbr�r?�collections�UserDict)rr�r�rKrrr�test_compat_unpickle�s(




z*AbstractUnpickleTests.test_compat_unpicklec,Cs|ddddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,g,}x|D]}|j|j|�qbWdS)-N�.�0�1�2s(2�Rs)R�asNa�bsNb�d�es(esibuiltins
list
�l�os(osp1
sqsr�ssNssNNs�t�us(us}(Nu��s)�����sN���sN�sNN���s(�����s)}���sVlist
���)rm�bad_stack_errors)rr�r�rrr�test_bad_stack�s\
z$AbstractUnpickleTests.test_bad_stackcCs`ddddddddd	d
ddd
dddddddddddddddddg}x|D]}|j|j|�qFWdS)NsN(.sN(2scbuiltins
list
)(Rscbuiltins
list
()Rs]N(ascbuiltins
ValueError
)R}(bscbuiltins
ValueError
)R(}bs(NdsN(p1
sN(qsN(rs}NN(ss}N(Nss}(NNss}((uscbuiltins
list
)(�scbuiltins
list
()�sN(�sNN(�sN(N�sNNN(�sNN(N�sN(NN�s]((�scbuiltins
list
)}(�scbuiltins
list
)(}�scbuiltins
list
()}�sVbuiltins
(Vlist
�sVbuiltins
Vlist
(�sN(�)rmr�)rr�r�rrr�
test_bad_marks@
z#AbstractUnpickleTests.test_bad_markcQCs�|jtd�|jtd�ddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSgQ}x|D]}|j|j|�q�WdS)TN��N�BsBsBsBab�CsCsCab�FsF0.0sF0.00�GsGr�sI0�JsJ�K�LsL0sL10sL0LsL10L�MsM�SsS'abc'�TsTsTsTab�UsUsUab�VsVabcrzsXsXsXabs(cs
(cbuiltinss(cbuiltins
s(cbuiltins
listsNgsNg0s(is
(ibuiltinss(ibuiltins
s(ibuiltins
listsNhsNjsNjsNpsNp0sNqsNrsNr������s���s�����s���s�s�ab��s�s	�s�ab��s�s	�s�ab��s�s	�s
�N)rm�EOFErrorZtruncated_errors)rr�r�rrr�test_truncated_data>s�
z)AbstractUnpickleTests.test_truncated_data)N)-r%r&r'rXrnrbrmrprrrtrvrxr~r�r�r�r�r�r�r�r�r��requires_32br�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrY�sP
9
2'rYc@s�eZdZdZejZdd�ZejZdd�Zdd�Z	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,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Z d6d7�Z!d8d9�Z"d:d;�Z#d<d=�Z$d>d?�Z%e&d@dAdB�dCdD��Z'dEdF�Z(dGdH�Z)dIdJ�Z*dKdL�Z+dMdN�Z,dOdP�Z-dQdR�Z.dSdT�Z/dUdV�Z0dWdX�Z1dYdZ�Z2d[d\�Z3d]d^�Z4d_d`�Z5dadb�Z6dcdd�Z7dedf�Z8dgdh�Z9didj�Z:dkdl�Z;dmdn�Z<dodp�Z=dqdr�Z>dsdt�Z?dudv�Z@dwdx�ZAdydz�ZBd{d|�ZCd}d~�ZDdd��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZIeJd�d���ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTd�ZUd�d��ZVd�d��ZWd�d��ZXd�d��ZYd�d��ZZd�d��Z[d�d��Z\d�d��Z]d�d��Z^d�d��Z_d�S)��AbstractPickleTestsFcCsdS)Nr)rrrr�setUp�szAbstractPickleTests.setUpcCs�x�tD]�}td�}|j||�}|j|�}|j||�dff}|j||�}|j|�}|j||�td|�}|j||�}|j|�}|j||�qWdS)Nr�r)�	protocolsr>�dumpsrfrbrA)r�protor@�srWrrr�	test_misc�s




zAbstractPickleTests.test_misccCs:|j}x.tD]&}|j||�}|j|�}|j||�qWdS)N)rnrrrfrb)rr�rrr�rrr�test_roundtrip_equality�s


z+AbstractPickleTests.test_roundtrip_equalitycCsnddlm}ddlm}xPdtfdtffD]<\}}|j|j|�}|�}|||d�|j�}|j	||�q*WdS)Nr)�StringIO)�disr)�out)
r!rrr�	DATA0_DIS�	DATA1_DISrrn�getvaluer])rrrrr�rZfileliker�rrr�dont_test_disassembly�sz)AbstractPickleTests.dont_test_disassemblycCsbg}|j|�xNtD]F}|j||�}|j|�}|j|t�|jt|�d�|j|d|�qWdS)Nrr)	rUrrrf�assertIsInstancer�r]�lenr^)r�lrrr@rrr�test_recursive_list�s


z'AbstractPickleTests.test_recursive_listcCs�gf}|dj|�xvtD]n}|j||�}|j|�}|j|t�|jt|�d�|j|dt�|jt|d�d�|j	|dd|�qWdS)Nrr)
rUrrrfr�tupler]rr�r^)r�trrr@rrr�test_recursive_tuple_and_list�s

z1AbstractPickleTests.test_recursive_tuple_and_listcCsfi}||d<xTtD]L}|j||�}|j|�}|j|t�|jt|j��dg�|j|d|�qWdS)Nr)	rrrfrrJr]r�r�r^)r�drrr@rrr�test_recursive_dict�s

z'AbstractPickleTests.test_recursive_dictcCs�i}t|�}d||<xttD]l}|j||�}|j|�}|j|t�|jt|j��d�|jt	|j��dt�|j
t	|j��dj|�qWdS)Nrr)r:rrrfrrJr]rr�r�r^r;)rr#�krrr@rrr�test_recursive_dict_key�s

z+AbstractPickleTests.test_recursive_dict_keycCs�t�}t|�}|j|�xttdtjd�D]`}|j||�}|j|�}|j|t�|j	t
|�d�|jt|�dt�|jt|�dj
|�q*WdS)Nr�rr)r�r:�addr�r�HIGHEST_PROTOCOLrrfrr]rr�r^r;)rrWr%rrr@rrr�test_recursive_set�s

z&AbstractPickleTests.test_recursive_setcCspt�}|j|�xZtdtjd�D]F}|j||�}|j|�}|j|t�|jt	|�d�|j
|d|�q"WdS)Nrrr)�MyListrUr�rr(rrfrr]rr^)rrWrrr@rrr�test_recursive_list_subclass
s

z0AbstractPickleTests.test_recursive_list_subclasscCstt�}||d<x`tdtjd�D]L}|j||�}|j|�}|j|t�|jt|j	��dg�|j
|d|�q WdS)Nrr)�MyDictr�rr(rrfrr]r�r�r^)rr#rrr@rrr�test_recursive_dict_subclasss
z0AbstractPickleTests.test_recursive_dict_subclasscCs�t�}t|�}d||<x�tdtjd�D]p}|j||�}|j|�}|j|t�|jt	t
|j���d�|jt
|j��dt�|jt
|j��dj
|�q(WdS)Nrrr)r,r:r�rr(rrfrr]rr�r�r^r;)rr#r%rrr@rrr� test_recursive_dict_subclass_keys
z4AbstractPickleTests.test_recursive_dict_subclass_keycCsbt�}||_xPtD]H}|j||�}|j|�}|j|t�|jt|�t|��|j|j|�qWdS)N)	r1�attrrrrfrr]�dirr^)r�irrr@rrr�test_recursive_inst*s

z'AbstractPickleTests.test_recursive_instcCs�g}d|i}t�}||_|j|�x�tD]�}|j||�}|j|�}|j|t�|jt	|�d�|jt
|d�t
|��|jt|djj��dg�|j|djd|k�q(WdS)Nrr)
r1r/rUrrrfrr�r]rr0r��
assertTrue)rrr#r1rrr@rrr�test_recursive_multi4s


z(AbstractPickleTests.test_recursive_multicCs�t�}||g�}||_xltD]d}|j||�}|j|�}|j|t|��|jt|�d�|jt	|�dt�|j
t	|�dj|�qWdS)Nrr)r9r/rrrfrrGr]rr�r^)r�factory�hrWrrr@rrr�#check_recursive_collection_and_instCs


z7AbstractPickleTests.check_recursive_collection_and_instcCs|jt�dS)N)r7r�)rrrr�test_recursive_list_and_instOsz0AbstractPickleTests.test_recursive_list_and_instcCs|jt�dS)N)r7r )rrrr�test_recursive_tuple_and_instRsz1AbstractPickleTests.test_recursive_tuple_and_instcCs|jtj�dS)N)r7rJ�fromkeys)rrrr�test_recursive_dict_and_instUsz0AbstractPickleTests.test_recursive_dict_and_instcCs|jt�dS)N)r7r�)rrrr�test_recursive_set_and_instXsz/AbstractPickleTests.test_recursive_set_and_instcCs|jt�dS)N)r7�	frozenset)rrrr�!test_recursive_frozenset_and_inst[sz5AbstractPickleTests.test_recursive_frozenset_and_instcCs|jt�dS)N)r7r*)rrrr�%test_recursive_list_subclass_and_inst^sz9AbstractPickleTests.test_recursive_list_subclass_and_instcCs|jt�dS)N)r7�MyTuple)rrrr�&test_recursive_tuple_subclass_and_instasz:AbstractPickleTests.test_recursive_tuple_subclass_and_instcCs|jtj�dS)N)r7r,r:)rrrr�%test_recursive_dict_subclass_and_instdsz9AbstractPickleTests.test_recursive_dict_subclass_and_instcCs|jt�dS)N)r7�MySet)rrrr�$test_recursive_set_subclass_and_instgsz8AbstractPickleTests.test_recursive_set_subclass_and_instcCs|jt�dS)N)r7�MyFrozenSet)rrrr�*test_recursive_frozenset_subclass_and_instjsz>AbstractPickleTests.test_recursive_frozenset_subclass_and_instcCsTdddddddg}x<tD]4}x.|D]&}|j||�}|j|�}|j||�q"WqWdS)Nr�z<\u>u<\ሴ>z<
>z<\>u<\𒍅>u<�>)rrrfrb)rZendcasesr�ur�Zu2rrr�test_unicodems


z AbstractPickleTests.test_unicodecCs8d}x.tD]&}|j||�}|j|�}|j||�q
WdS)Nu𒍅)rrrfrb)rr!rr�Zt2rrr�test_unicode_high_planexs


z+AbstractPickleTests.test_unicode_high_planecCs�x�tD]�}x4ddddfD]"}|j||�}|j||j|��qWx8dd�td�D�D]"}|j||�}|j||j|��qTWx8dd�td�D�D]"}|j||�}|j||j|��q�WqWdS)Nr�sxyzr�cSsg|]}t|g��qSr)r�)�.0r1rrr�
<listcomp>�sz2AbstractPickleTests.test_bytes.<locals>.<listcomp>�cSsg|]}t||g��qSr)r�)rJr1rrrrK�s)rrrbrfr�)rrrr�rrr�
test_bytess
zAbstractPickleTests.test_bytescCs`xZtD]R}tj}xF|rVx4||fD]&}|j||�}|j|�}|j||�q"W|d?}qWqWdS)Nr)r�sys�maxsizerrfrb)rrrr�rZn2rrr�	test_ints�s

zAbstractPickleTests.test_intsc	Cs�xttD]l}xfdD]^}d|>}xP|d||dfD]:}x4||fD]&}|j||�}|j|�}|j||�q@Wq0WqWqWtdd�}||d	>7}xD||fD]6}|j|d
�}|j|�}|jt|�t�|j||�q�WdS)Nr��rNrLiZdeadbeeffeedface�i@Br�����)rrQrTrUrVrW)rrrfrb�intr^rGr])	rrZnbitsZnbaseZnposrrr�r�rrr�	test_long�s




zAbstractPickleTests.test_longcCsnddddddddd	d
dg}|dd
�|D�}x<tD]4}x.|D]&}|j||�}|j|�}|j||�q<Wq2WdS)Nggg+�p�hg�Z��*)g_D��9g�������?g�?g��Q�	@g�m�"wp@g�W�T��Dgꌠ9Y>)FcSsg|]
}|�qSrr)rJr@rrrrK�sz2AbstractPickleTests.test_float.<locals>.<listcomp>)rrrfrb)rZtest_valuesrr;rr�rrr�
test_float�s


zAbstractPickleTests.test_float�LC_ALL�de_DE�fr_FRcCs |j|jdd�dd�d�dS)Ng333333�?rr�sF1.)r]r)rrrr�test_float_format�sz%AbstractPickleTests.test_float_formatcCs:x4tD],}t�}|j||�}|j|�}|j|t�qWdS)N)r�AAArrfr]�REDUCE_A)rr�instr�r�rrr�test_reduce�s


zAbstractPickleTests.test_reducecCs>x8tD]0}tdd�}|j||�}|j|�}|j||�qWdS)Nrr)rrArrfrb)rrrar�r�rrr�test_getinitargs�s



z$AbstractPickleTests.test_getinitargscCs>t�}x2tD]*}|j||�}|j|�}|j|j|j�qWdS)N)rErrrfr]rj)rrBrrrCrrr�test_metaclass�s


z"AbstractPickleTests.test_metaclasscCsbtdtf�}tjttj�xBtD]:}|j||�}|j|�}|j	||�|j
t|�t|��q WdS)NZmy_dynamic_class)rIr�r)rrFr<rrrfr]r^rG)rrBrrrCrrr�test_dynamic_class�s

z&AbstractPickleTests.test_dynamic_classcCs�ddl}ddl}|j�}x�tD]�}|j||�}|j|�}|j||�t|d�r||j|j	�}|j||�}|j|�}|j||�t|d�r|j
|j	�}|j||�}|j|�}|j||�qWdS)Nr�stat�statvfs)�time�osZ	localtimerrrfrbr_rf�curdirrg)rrhrir!rrrGrrr�test_structseq�s"





z"AbstractPickleTests.test_structseqcCs4x.tD]&}|jd|�}|j|�}|jd|�qWdS)N.)rrrfr^)rrrrGrrr�
test_ellipsis�s

z!AbstractPickleTests.test_ellipsiscCs4x.tD]&}|jt|�}|j|�}|jt|�qWdS)N)rr�NotImplementedrfr^)rrrrGrrr�test_notimplemented�s

z'AbstractPickleTests.test_notimplementedcCsTddtg}xD|D]<}x6tD].}|jt|�|�}|j|�}|jt|�|�qWqWdS)N.)rmrrrGrfr^)rZ
singletonsZ	singletonrrrGrrr�test_singleton_types�s



z(AbstractPickleTests.test_singleton_typescCs�xVtD]N}|jd|�}|dkr@tjt|g�}|j|j|��q|jttj|�d�qWtdd}tj	tj
}tjt|g�|}y|j|�Wn2tk
r�}z|j
dt|��WYdd}~XnX|jd�dS)Nrrrzunsupported pickle protocolz0expected bad protocol number to raise ValueErrorrQ)rrrZPROTOr�r3�
startswithr]r�NONEr�rfr��assertInr?Zfail)rrr�Zproto_headerZoobZ
build_noneZ	badpickle�errrrr�
test_protos
"zAbstractPickleTests.test_protocCsPd}xFtD]>}|j||�}|j|�}|j||�|jttj|�|dk�q
WdS)Nl�UJ^w,3�|	r)rrrfrbr]rrZLONG1)rr@rrrWrrr�
test_long1s

zAbstractPickleTests.test_long1cCsTdd>}xFtD]>}|j||�}|j|�}|j||�|jttj|�|dk�qWdS)Nl�UJ^w,3�|	rLrQri)rrrfrbr]rrZLONG4)rr@rrrWrrr�
test_long4s

zAbstractPickleTests.test_long4c(Csdtjdtjdtjd	tjd
tjdtjdtjd
tjdtjdtjdtjdtjdtjdtjdtjdtjdtjdtjdtjdtji}f}d}d}d}d}xntD]f}x`|||||fD]N}|j||�}	|j|	�}
|j	||
�|t
|d�t|�f}|jt
||	���q�Wq�WdS)Nrrrr�r�)rr)rr)rr)rr�)rr�)rr)rr)rr)rr�)rr�)rr)rr)rr)rr�)rr�)r�r)r�r)r�r)r�r�)r�r�)r)rr)rrr�)rrr�r�)rZTUPLEZEMPTY_TUPLEZTUPLE1ZTUPLE2ZTUPLE3rrrfrb�minrr3r)r�expected_opcoderBrCrVr#�err@rrWr�rrr�test_short_tuples's@


z%AbstractPickleTests.test_short_tuplescCs�dtjdtjd	tjd
tjdtjdtjd
tjdtjdtjdtjdtjdtji}xjtD]b}x\dD]T}|j||�}|j|�}|j||k||||f�|t	|d�|f}|jt
||��q\WqRWdS)Nrrrr�TF)rN)rN)rN)r�N)rT)rT)rT)r�T)rF)rF)rF)r�F)NFT)rrqZINTZNEWTRUEZNEWFALSErrrfr3rwr)rrxrr@rrWr�rrr�test_singletonsNs&



z#AbstractPickleTests.test_singletonscCsNtdddg�}d|_d|_x.tD]&}|j||�}|j|�}|j||�q WdS)Nrrr�r��hello)r@rRrSrrrfrb)rr@rrrWrrr�test_newobj_tuplegs

z%AbstractPickleTests.test_newobj_tuplecCsNtdddg�}d|_d|_x.tD]&}|j||�}|j|�}|j||�q WdS)Nrrr�r�r|)r*rRrSrrrfrb)rr@rrrWrrr�test_newobj_listps

z$AbstractPickleTests.test_newobj_listc	Cs�x�tD]�}x�tD]x}|j}||j�}d|_|j||�}|j|�}|||||t|�f}|j||�|j	||�||�|�|j	|j
|j
|�qWqWdS)Nr�)r�	myclasses�__base__�samplerRrrfrGrbr]r2)rrr1�Br@rrW�detailrrr�test_newobj_genericys



z'AbstractPickleTests.test_newobj_genericc	Cs�tdd�}xttfD]}|j|�qWx�tD]�}x�|D]�}|j}||j�}d|_tj	|�}|j
||�}|j|�}	|jt
|	�t
|��|||||	t
|	�f}
|j||�||	�|
�|j|j|	j|
�q8Wq.WdS)Nr�)r�MyIntr@�removerr�r�rR�weakref�proxyrrfr]rGr2)r�classesrVrr1r�r@r�rrWr�rrr�test_newobj_proxies�s




z'AbstractPickleTests.test_newobj_proxiesc
CsDt}tjt�}|j|d�}zda|jttjf|j|�Wd|aXdS)Nr�r�)�SimpleNewObj�__new__rre�	TypeErrorrr�rf)rZsave�orCrrr�test_newobj_not_class�s
z)AbstractPickleTests.test_newobj_not_classcCs�t|�}z�tjtd|�tdddg�}d|_d|_|j|d�}|jtj	d�|�|jd|�|j
t||��|j|�}|j
||�|j|d�}|jtj	d�|�|jd|�|jt||�d	t|��|j|�}|j
||�Wd|j�XdS)
Nr*rrr�r�r|zutf-8sMyListT)r(r)r/r%r*rRrSrrrr{�assertFalserrfrbZassertNotInr]�reprr0)rZextcode�opcoderyr@�s1rW�s2rrr�produce_global_ext�s&

z&AbstractPickleTests.produce_global_extcCs |jdtj�|jdtj�dS)NrrN)r�rZEXT1)rrrr�test_global_ext1�sz$AbstractPickleTests.test_global_ext1cCs.|jdtj�|jdtj�|jdtj�dS)NrLi��iͫ)r�rZEXT2)rrrr�test_global_ext2�sz$AbstractPickleTests.test_global_ext2cCs.|jdtj�|jdtj�|jdtj�dS)Nii���i�ͫ)r�rZEXT4)rrrr�test_global_ext4�sz$AbstractPickleTests.test_global_ext4cCs�d}tt|��}xJtD]B}|j||�}|j|�}|j||�ttj|�}|j	||dk�qWd}tt|��}x^tD]V}|j||�}|j|�}|j||�ttj|�}|dkr�|j	|d�qr|j
|dk�qrWdS)N�
ri�	r)r�r�rrrfrbrr�APPENDSr]r3)rrr@rrrWZnum_appendsrrr�test_list_chunking�s$



z&AbstractPickleTests.test_list_chunkingcCs�d}tjt|��}xVtD]N}|j||�}|j|t�|j|�}|j||�t	t
j|�}|j||dk�qWd}tjt|��}x^tD]V}|j||�}|j|�}|j||�t	t
j|�}|dkr�|j|d�q�|j
|dk�q�WdS)Nr�ri�	r)rJr:r�rrrrrfrbrr�SETITEMSr]r3)rrr@rrrWZnum_setitemsrrr�test_dict_chunking�s&



z&AbstractPickleTests.test_dict_chunkingcCs�d}tt|��}x\tD]T}|j||�}|j|�}|j||�ttj|�}|dkr^|j	|d�q|j	|d�qWd}tt|��}x\tD]T}|j||�}|j|�}|j||�ttj|�}|dkr�|j	|d�q�|j
|d�q�WdS)Nr�r�rri�	r)r�r�rrrfrbrrZADDITEMSr]�assertGreaterEqual)rrr@rrrWZnum_additemsrrr�test_set_chunkings(



z%AbstractPickleTests.test_set_chunkingcCs�tjtd�}d|_x�tD]�}|j|d��t|j||�}|dkrL|jd|�n|jd|�|jtt	j
|�d|k�|jtt	j|��|j
|�}|j||�WdQRXqWdS)Ni�i�)rrs
L64206sM�r)r�r�rOrrdrrrr]rr�NEWOBJr��	NEWOBJ_EXrfrb)rr@rrrWrrr�test_simple_newobjs


z&AbstractPickleTests.test_simple_newobjcCs�tjtd�}d|_x�tD]�}|j|d���|j||�}|dkrL|jd|�n8|dkrb|jd|�n"|dkrx|jd	|�n|jd
|�|jtt	j
|�d|k�|jtt	j|��|j
|�}|j||�WdQRXqWdS)Ni�i�)rrs
L64206rsM�r�s	XFACEs�FACE)�
ComplexNewObjr�rOrrdrrrr]rrr�r�r�rfrb)rr@rrrWrrr�test_complex_newobj)s"


z'AbstractPickleTests.test_complex_newobjcCs�tjtd�}d|_x�tD]�}|j|d���|j||�}|dkrL|jd|�n8|dkrb|jd|�n"|dkrx|jd	|�n|jd
|�|jtt	j
|��|jtt	j|�d|k�|j
|�}|j||�WdQRXqWdS)Ni�i�)rrs
L64206rsM�r�s	XFACEs�FACE)�ComplexNewObjExr�rOrrdrrrr�rrr�r]r�rfrb)rr@rrrWrrr�test_complex_newobj_ex=s"


z*AbstractPickleTests.test_complex_newobj_excCs@tdddg�}d|_d|_|j|d�}|j|�}|j||�dS)Nrrr�r�r|)�SlotListrRrSrrfrb)rr@rrWrrr�test_newobj_list_slotsQs
z*AbstractPickleTests.test_newobj_list_slotscCsXxRtD]J}t�}|j|jd�|j||�}|j|jd�|j|�}|j|jd�qWdS)Nrr)r�REX_oner]�_reduce_calledrrf)rrr@rrWrrr�'test_reduce_overrides_default_reduce_exYs

z;AbstractPickleTests.test_reduce_overrides_default_reduce_excCsXxRtD]J}t�}|j|jd�|j||�}|j|j|�|j|�}|j|jd�qWdS)N)r�REX_twor]�_protorrf)rrr@rrWrrr�test_reduce_ex_calledbs

z)AbstractPickleTests.test_reduce_ex_calledcCsXxRtD]J}t�}|j|jd�|j||�}|j|j|�|j|�}|j|jd�qWdS)N)r�	REX_threer]r�rrf)rrr@rrWrrr�test_reduce_ex_overrides_reduceks

z3AbstractPickleTests.test_reduce_ex_overrides_reducecCsXxRtD]J}t�}|j|jd�|j||�}|j|j|�|j|�}|j|j|�qWdS)N)r�REX_fourr]r�rrf)rrr@rrWrrr�test_reduce_ex_calls_basets

z-AbstractPickleTests.test_reduce_ex_calls_basecCsXxRtD]J}t�}|j|jd�|j||�}|j|jd�|j|�}|j|jd�qWdS)Nrr)r�REX_fiver]r�rrf)rrr@rrWrrr�test_reduce_calls_base}s

z*AbstractPickleTests.test_reduce_calls_basecCs*t�}xtD]}|jt|j||�qWdS)N)�
BadGetattrrre�RuntimeErrorr)rr@rrrr�test_bad_getattr�s
z$AbstractPickleTests.test_bad_getattrcCs�Gdd�dt�}Gdd�dt�}x`tD]X}y|j|�|�Wntjk
rRYnXy|j|�|�Wq&tjk
r|Yq&Xq&WdS)Nc@seZdZdd�ZdS)z7AbstractPickleTests.test_reduce_bad_iterator.<locals>.CcSstfdgdfS)N)r�)rrrrr<�szBAbstractPickleTests.test_reduce_bad_iterator.<locals>.C.__reduce__N)r%r&r'r<rrrrr1�sr1c@seZdZdd�ZdS)z7AbstractPickleTests.test_reduce_bad_iterator.<locals>.DcSstfddgfS)N)rJ)rrrrr<�szBAbstractPickleTests.test_reduce_bad_iterator.<locals>.D.__reduce__N)r%r&r'r<rrrrr5�sr5)r�rrr�
PicklingError)rr1r5rrrr�test_reduce_bad_iterator�s
z,AbstractPickleTests.test_reduce_bad_iteratorcCs�dd�td�D�}tdd�|D��}t|�t|�t|�g}xFtD]>}|j|d��(|j||�}|j|�}|j||�WdQRXq@WdS)Ncss|]}dt|�VqdS)ZaaaN)r?)rJr1rrr�	<genexpr>�sz>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>r�css|]}|dddgfVqdS)r�rPr�Nr)rJr%rrrr��s)r)r�rJrrdrrfrb)rr�Z
large_dictrarr�r�rrr�test_many_puts_and_gets�s

z+AbstractPickleTests.test_many_puts_and_getsc	CsrxltD]d}t�}d|_d|_|j||�}|j|�}t|j�}t|j�}x"t||�D]\}}|j	||�qRWqWdS)Nr�r|)
rr1rRrSrrf�sortedr2�zipr^)	rrr@rrWZx_keysZy_keysZx_keyZy_keyrrr�test_attribute_name_interning�s



z1AbstractPickleTests.test_attribute_name_interningcCs>|jtd�d�}|j|t�|jtdg�d�}|j|t�dS)NrPrr�)rr�r]r�r��	DATA_SET2)rr�rrr�test_pickle_to_2x�sz%AbstractPickleTests.test_pickle_to_2xcCsXxRtD]J}dtddtf}|j||�}|j|�}|jt|�t|��|j||�qWdS)Nrsxy�iix)rrwrrrfr])rrrcr�r�rrr�test_large_pickles�s

z&AbstractPickleTests.test_large_picklesc
s�x�tD]z��j�d��d��fdd�td�D�}ttt|��}�jt|�|��dkrvx|D]}�jt	t
j|��q\WWdQRXqWdS)N)rcsg|]}�jd|���qS)r)r)rJr)rrrrrK�szDAbstractPickleTests.test_int_pickling_efficiency.<locals>.<listcomp>�Fr)rrdr�r��maprr]r�r�rrZLONG)rZpicklesZsizesr�r)rrr�test_int_pickling_efficiency�s

z0AbstractPickleTests.test_int_pickling_efficiencycCs6|j||�}|jt||��|j|�}|j||�dS)N)rr3rrfr])rrar�rr�r�rrr�_check_pickling_with_opcode�s
z/AbstractPickleTests._check_pickling_with_opcodecCsJtdddg�}x6tD].}|dkr2|j|tj|�q|j|tj|�qWdS)Nrrr�r)�REX_sixrr�rZAPPENDr�)rrarrrr�test_appends_on_non_lists�s

z-AbstractPickleTests.test_appends_on_non_listscCsLtdddd��}x6tD].}|dkr4|j|tj|�q|j|tj|�qWdS)	Nrrr�)rrr�rrQ������)�	REX_sevenrr�rZSETITEMr�)rrarrrr�test_setitems_on_non_dicts�s

z.AbstractPickleTests.test_setitems_on_non_dicts�@ic	Cs|d}d}}xNtj|�D]@\}}}|jdkr.q|dk	rN|||}|j||�||}}qWt|�||}|j||�dS)N�	�FRAME)rrrKr]r)	rr��frame_opcode_sizeZlast_argZlast_posrr6�pos�
frame_sizerrr�check_frame_opcodes�s
z'AbstractPickleTests.check_frame_opcodescCs�ttd��}x�tdtjd�D]�}|j|d��j|j||�}|j|�}|j||�t|�t	tj
|�}|j||jd�|j
||jd�|j|�WdQRXqWdS)Nr�rPr�r)rri��)r�r�rr(rdrrfr]rrr�Z
assertGreater�FRAME_SIZE_TARGETZassertLessEqualr�)rrarr�r�Zbytes_per_framerrr�test_framing_many_objectss
z-AbstractPickleTests.test_framing_many_objectscCs�d}d|d|d|g}xxtdtjd�D]d}|j|d��N|j||�}|j|�}|j||�ttj|�}|j	|t
|��|j|�WdQRXq,WdS)	Nir��y�zr�r)ri)r�rr(rdrrfr]rr�r�rr�)r�Nrarr�r�Zn_framesrrr�test_framing_large_objectss
z.AbstractPickleTests.test_framing_large_objectscs�tjdkrdSddd�}|j�d}�fdd�t|�D�}x�tdtjd�D]z}|j||�}||�}|jttj|�d�|j||j|��||d	d
��}|j	ttj|�ttj|��|j||j|��qJWdS)Nr�c
Ss�g}d}x,tj|�D]\}}}|jdkr|j|�qWt�}d}x:t|�D].\}	}|r`||	�r`qJ||||�7}||}qJW|||d�7}|S)Nr�r�r)rrrKrU�	bytearray�	enumerate)
r�Z
keep_frameZframe_startsr�r��_r�Z	newpickleZlast_frame_endr1rrr�
remove_frames-s
z?AbstractPickleTests.test_optional_frames.<locals>.remove_frames�csg|]}t|g���qSr)r�)rJr1)r�rrrKBsz<AbstractPickleTests.test_optional_frames.<locals>.<listcomp>rrcSs|dS)Nrr)r1rrr�<lambda>Ksz:AbstractPickleTests.test_optional_frames.<locals>.<lambda>)N)
rr(r�r�rr]rr�rfZ
assertLess)rr�Z
num_framesrarr�Zframeless_pickleZsome_frames_pickler)r�r�test_optional_frames)s

z(AbstractPickleTests.test_optional_framesc
Cs�Gdd�d�axnttjd�D]\}xVtjtjjtjjjgD]<}|j||d��$|j|j	||��}|j
||�WdQRXq:WqWdS)Nc@seZdZGdd�d�ZdS)�Nestedc@seZdZGdd�d�ZdS)zNested.Ac@seZdZGdd�d�ZdS)z
Nested.A.Bc@seZdZdS)zNested.A.B.CN)r%r&r'rrrrr1Usr1N)r%r&r'r1rrrrr�Tsr�N)r%r&r'r�rrrr�ASsr�N)r%r&r'r�rrrrr�Rsr�r)rra)r�r�rr(r�r�r1rdrfrr^)rrrar�rrr�test_nested_namesPsz%AbstractPickleTests.test_nested_namescCsxGdd�d�atjtjt_dt_xLttjd�D]:}|j	|d��$|j
|jt|��}|j|t�WdQRXq2Wt`dS)Nc@seZdZdS)�	RecursiveN)r%r&r'rrrrr�_sr�zRecursive.mod.Recursiver)r)
r�rN�modulesr&�modr'r�rr(rdrfrr^)rrr�rrr�test_recursive_nested_names]sz/AbstractPickleTests.test_recursive_nested_namesc
Cs
Gdd�d�atjtjt�jtjjtjjtj�jf}tjtftjjtjff}x�tt	j
d�D]�}xH|D]@}|j||d��(|j|j
||��}|j|�|��WdQRXqfWxV|D]N\}}|�}|j||d��,|j|j
||��}|j||�||��WdQRXq�Wq\WdS)Nc@s:eZdZedd��Zedd��Zdd�ZGdd�d�Zd	S)
�
PyMethodsTestcSsdS)N�cheeserrrrrr�lszPyMethodsTest.cheesecSsdS)N�winer)�clsrrrr�oszPyMethodsTest.winecSsdS)N�biscuitsr)rrrrr�sszPyMethodsTest.biscuitsc@s,eZdZedd��Zedd��Zdd�ZdS)zPyMethodsTest.NestedcSsdS)N�ketchuprrrrrr�xszPyMethodsTest.Nested.ketchupcSsdS)N�mapler)r�rrrr�{szPyMethodsTest.Nested.maplecSsdS)N�pier)rrrrr�szPyMethodsTest.Nested.pieN)r%r&r'�staticmethodr��classmethodr�r�rrrrr�vsr�N)	r%r&r'r�r�r�r�r�r�rrrrr�ksr�r)r�method)r�r�r�r�r�r�r�r�r�rr(rdrfrr])rZ
py_methodsZpy_unbound_methodsrr�r�r�rarrr�test_py_methodsis&
z#AbstractPickleTests.test_py_methodscCs&Gdd�dt�adjdftjdfdddgjfftjdddgffddhjdftjddhdfftj	dft
jdftdddg�jdftjtdddg�dfftj
d�jdftj
jtj
d�d
fff}xhttjd�D]V}xP|D]H\}}|j||d��,|j|j||��}|j||�||��WdQRXq�Wq�WdS)Nc@seZdZGdd�de�ZdS)�Subclassc@seZdZdS)zSubclass.NestedN)r%r&r'rrrrr��sr�N)r%r&r'r?r�rrrrr��sr��abcdrVrrr�rBrC�abc�xyzZsweetry)rr�)rV)r�rV)r�rBr�rCr)r�r�)r�r�)r)ry)r r��indexr?�__len__r��__contains__r�rJr:r��	maketrans�countr�r�rr(rdrfrr])rZ	c_methodsrr�rr�rrr�test_c_methods�s$z"AbstractPickleTests.test_c_methodsc
Cs�tdd�ddfttd�ddftjddftjd	d	ft�d
dftj	�dd
ftj
�ddftj�ddfg}x�|D]x\}}}xltd�D]`}|jt
|�|d��D|j||�}|jd||fj�|�|jt
|j|��t
|��WdQRXq|WqhWdS)Nrr�Z__builtin__ZxrangeZ123�	itertoolsZimapr�r��
exceptionsr�r�ZIterableUserDict�UserListr��defaultdictr�)rGrzc%s
%s)r�r�rXr�r�r�r�r�r�r�rrrdrGrrrr{r^rf)rZtests�valr�rKrr�rrr�test_compat_pickle�s


z&AbstractPickleTests.test_compat_picklecCs�dd�}xFtdtjd�D]2}|jttjf��tj|j||��WdQRXqW|`	xFtdtjd�D]2}|jttjf��tj|j||��WdQRXqfW|j
|_xFtdtjd�D]2}|jttjf��tj|j||��WdQRXq�WdS)NcSsdS)Nrrrrr�f�sz6AbstractPickleTests.test_local_lookup_error.<locals>.frr)r�rr(re�AttributeErrorr�rrrr&r'r%)rrrrrr�test_local_lookup_error�s  z+AbstractPickleTests.test_local_lookup_errorNi)`r%r&r'Z	optimizedrYrnrrbrrrrr"r$r&r)r+r-r.r2r4r7r8r9r;r<r>r?rArBrDrFrHrIrMrPrYrZrr^rbrcrdrerkrlrnrortrurvrzr{r}r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrr
�s�







	'		
					


	
'
1#r
c@szeZdZeeddd�dd��Zeeddd�dd��Zeeddd�d	d
��Zeeddd�dd
��Z	eeddd�dd��Z
dS)�BigmemPickleTestsg������@F)�sizeZmemuseZdry_runcCstdd|>}z\xVtD]N}|dkr"q|j|d��.|jttf��|j||d�WdQRXWdQRXqWWdd}XdS)NrrQr)r)�protocol)rrdrer�r�r)rr
rcrrrr�test_huge_long_32b�s
*z$BigmemPickleTests.test_huge_long_32bg@cCs�d|d}z�x�tD]|}|dkr"q|j|d��\zN|j||d�}tjtjdt|��}|j|�}|j	|||t|�|��Wdd}XWdQRXqWWdd}XdS)Nsabcdr�r�)r)rz<I)
rrdrrZBINBYTESr�r�rr�r])rr
rcrr��header�
data_startrrr�test_huge_bytes_32b�s 

z%BigmemPickleTests.test_huge_bytes_32bc!Cs�d|d}z�x�tD]�}|dkr"q|j|d���|dkrb|jttf��|j||d�WdQRXwzN|j||d�}tjtj	dt
|��}|j|�}|j|||t
|�|��Wdd}XWdQRXqWWdd}XdS)Nsacbdr�r�)r)rz<Q)
rrdrer�r�rrZ	BINBYTES8r�r�rr�r])rr
rcrr�r
rrrr�test_huge_bytes_64b	s(

z%BigmemPickleTests.test_huge_bytes_64brQcCs�d|d}z�x�tD]�}|dkr"q|j|d���zv|j||d�}tjtjdt|��}|jd�}|j	|||t|�|��|j	|j
d�td�|jd�t|��Wdd}XWdQRXqWWdd}XdS)Nr�r�r)r)rz<Isabcd)rrdrrZ
BINUNICODEr�r�rr�r]�rindex)rr
rcrr�r
rrrr�test_huge_str_32b-	s$

z#BigmemPickleTests.test_huge_str_32bc!Cs�d|d}z�x�tD]�}|dkr"q|j|d���|dkrb|jttf��|j||d�WdQRXwzv|j||d�}tjtj	dt
|��}|jd�}|j|||t
|�|��|j|j
d�t
d�|jd�t
|��Wdd}XWdQRXqWWdd}XdS)Nr�r�r)r)rz<Qsabcd)rrdrer�r�rrZBINUNICODE8r�r�rr�r]r)rr
rcrr�r
rrrr�test_huge_str_64bH	s,

z#BigmemPickleTests.test_huge_str_64bN)r%r&r'r
rrrr	rrrrrrrr	�s
r	c@seZdZdZdd�ZdS)r�rcCsd|_tffS)Nr)r�r�)rrrrr<i	szREX_one.__reduce__N)r%r&r'r�r<rrrrr�f	sr�c@seZdZdZdd�ZdS)r�NcCs||_tffS)N)r�r�)rrrrr�
__reduce_ex__p	szREX_two.__reduce_ex__)r%r&r'r�rrrrrr�m	sr�c@s eZdZdZdd�Zdd�ZdS)r�NcCs||_tffS)N)r�r�)rrrrrrv	szREX_three.__reduce_ex__cCstd��dS)Nz#This __reduce__ shouldn't be called)r)rrrrr<y	szREX_three.__reduce__)r%r&r'r�rr<rrrrr�t	sr�c@seZdZdZdd�ZdS)r�NcCs||_tj||�S)N)r�r�r)rrrrrr	szREX_four.__reduce_ex__)r%r&r'r�rrrrrr�|	sr�c@seZdZdZdd�ZdS)r�rcCsd|_tj|�S)Nr)r�r�r<)rrrrr<�	szREX_five.__reduce__N)r%r&r'r�r<rrrrr��	sr�c@s.eZdZd
dd�Zdd�Zdd�Zdd	�ZdS)r�NcCs|dk	r|ng|_dS)N)�items)rrrrrr-�	szREX_six.__init__cCst|�t|�ko|j|jkS)N)rGr)rr3rrrr4�	szREX_six.__eq__cCs|jj|�dS)N)rrU)r�itemrrrrU�	szREX_six.appendcCst|�fdt|j�dfS)N)rG�iterr)rrrrr<�	szREX_six.__reduce__)N)r%r&r'r-r4rUr<rrrrr��	s
r�c@s.eZdZd
dd�Zdd�Zdd�Zdd	�ZdS)r�NcCs|dk	r|ni|_dS)N)�table)rrrrrr-�	szREX_seven.__init__cCst|�t|�ko|j|jkS)N)rGr)rr3rrrr4�	szREX_seven.__eq__cCs||j|<dS)N)r)rr�r;rrr�__setitem__�	szREX_seven.__setitem__cCst|�fddt|jj��fS)N)rGrrr)rrrrr<�	szREX_seven.__reduce__)N)r%r&r'r-r4rr<rrrrr��	s
r�c@seZdZdZdS)r�rN)r%r&r'r�rrrrr��	sr�c@seZdZdZdS)�MyFloatg�?N)r%r&r'r�rrrrr�	src@seZdZdZdS)�	MyComplexg�?yNy�?)r%r&r'r�rrrrr�	src@seZdZdZdS)�MyStrr|N)r%r&r'r�rrrrr�	src@seZdZdZdS)�	MyUnicodeu	hello ሴN)r%r&r'r�rrrrr�	src@seZdZdZdS)r@rrr�N)rrr�)r%r&r'r�rrrrr@�	sr@c@seZdZdddgZdS)r*rrr�N)r%r&r'r�rrrrr*�	sr*c@seZdZddd�ZdS)r,rr)rBrCN)r%r&r'r�rrrrr,�	sr,c@seZdZddhZdS)rCrBrCN)r%r&r'r�rrrrrC�	srCc@seZdZeddh�ZdS)rErBrCN)r%r&r'r=r�rrrrrE�	srEc@seZdZdgZdS)r�rRN)r%r&r'r[rrrrr��	sr�c@seZdZdd�Zdd�ZdS)r�cOstd��dS)Nz3SimpleNewObj.__init__() didn't expect to get called)r�)rr�kwargsrrrr-�	szSimpleNewObj.__init__cCst|�t|�ko|j|jkS)N)rXr2)rr3rrrr4�	szSimpleNewObj.__eq__N)r%r&r'r-r4rrrrr��	sr�c@seZdZdd�ZdS)r�cCsd|dfS)Nz%XrSr)rrrr�__getnewargs__�	szComplexNewObj.__getnewargs__N)r%r&r'rrrrrr��	sr�c@seZdZdd�ZdS)r�cCsd|fddifS)Nz%X�baserSr)rrrr�__getnewargs_ex__�	sz!ComplexNewObjEx.__getnewargs_ex__N)r%r&r'r!rrrrr��	sr�c@seZdZdd�ZdS)r�cCs
|jdS)N)rR)rr�rrr�__getattr__�	szBadGetattr.__getattr__N)r%r&r'r"rrrrr��	sr�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�AbstractPickleModuleTestscCsBddl}ttd�}z|j�|jt|jd|�Wd|jt�XdS)Nr�wb�{)ri�openr�closerer��dumpr�)rrirrrr�test_dump_closed_file�	s
z/AbstractPickleModuleTests.test_dump_closed_filecCsBddl}ttd�}z|j�|jt|jd|�Wd|jt�XdS)Nrr$r%)rir&rr'rer�r(r�)rrirrrr�test_load_closed_file�	s
z/AbstractPickleModuleTests.test_load_closed_filecCsBtj�}didg}|j||�|jd�|j|�}|j||�dS)Nr%�|r)r!�BytesIOr(r#�loadr])r�streamrcr�rrr�test_load_from_and_dump_to_file�	s


z9AbstractPickleModuleTests.test_load_from_and_dump_to_filecCs|jtjd�dS)Nr�)r]rr()rrrr�test_highest_protocol�	sz/AbstractPickleModuleTests.test_highest_protocolcCs^tj�}|jd|d�|jd|dd�|jdd�|jddd�|j|d	�|j|d
d�dS)Nr%r)�filer)rrQrQrQrQrQrQ)r!r,r(r�Pickler)rrrrr�test_callapi
sz&AbstractPickleModuleTests.test_callapicCsNGdd�d|j�}Gdd�d|j�}|jtj|�jd�|jtj|�j�dS)Nc@seZdZdd�ZdS)z;AbstractPickleModuleTests.test_bad_init.<locals>.BadPicklercSsdS)Nr)rrrrr-
szDAbstractPickleModuleTests.test_bad_init.<locals>.BadPickler.__init__N)r%r&r'r-rrrr�
BadPickler
sr4c@seZdZdd�ZdS)z=AbstractPickleModuleTests.test_bad_init.<locals>.BadUnpicklercSsdS)Nr)rrrrr-
szFAbstractPickleModuleTests.test_bad_init.<locals>.BadUnpickler.__init__N)r%r&r'r-rrrr�BadUnpickler
sr5r)r2Z	Unpicklerrerr�r(r�r-)rr4r5rrr�
test_bad_init
sz'AbstractPickleModuleTests.test_bad_initN)	r%r&r'r)r*r/r0r3r6rrrrr#�	s		
r#c@s$eZdZdd�Zdd�Zdd�ZdS)�AbstractPersistentPicklerTestscCsNt|t�r,|ddkr,|jd7_t|�S|dkrF|jd7_dSdSdS)Nrrr�test_false_valuer�)�
isinstancerX�id_countr?�false_count)rr�rrr�
persistent_id
sz,AbstractPersistentPicklerTests.persistent_idcCs4|s|jd7_dS|jd7_t|�}|SdS)Nrr8)�load_false_count�
load_countrX)rZoidr�rrr�persistent_load)
sz.AbstractPersistentPicklerTests.persistent_loadcCs�ttd��dg}xvtD]n}d|_d|_d|_d|_|j|j|j	||��|�|j|jd�|j|jd�|j|jd�|j|jd�qWdS)Nr�r8rrPr)
r�r�rr:r;r=r>r]rfr)r�Lrrrr�test_persistence3
s
z/AbstractPersistentPicklerTests.test_persistenceN)r%r&r'r<r?rArrrrr7
s

r7c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�&AbstractIdentityPersistentPicklerTestscCs|S)Nr)rrarrrr<C
sz4AbstractIdentityPersistentPicklerTests.persistent_idcCs|S)Nr)r�pidrrrr?F
sz6AbstractIdentityPersistentPicklerTests.persistent_loadcCs2|j|j||��}|j|t|��|j||�dS)N)rfrrrGr])rrarr�rrr�_check_return_correct_typeI
szAAbstractIdentityPersistentPicklerTests._check_return_correct_typecCsLxFtD]>}|dkr |jdd�qx"dddd
tgD]}|j||�q0WqWdS)NrrOsabc
zabc
rg�������?g�������?rQg�������g*\��(��)rrDr?)rrrarrr�test_return_correct_typeN
s

z?AbstractIdentityPersistentPicklerTests.test_return_correct_typecCsBd}|jtj|j|d�tj|jd�d}|jtj|j|�dS)Nu∅rzutf-8s
.)rerr�rZPERSIDr{r�rf)rZ
non_ascii_strr�rrr�test_protocol0_is_ascii_onlyW
szCAbstractIdentityPersistentPicklerTests.test_protocol0_is_ascii_onlyN)r%r&r'r<r?rDrErFrrrrrBA
s
	rBc@s\eZdZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dS)�#AbstractPicklerUnpicklerObjectTestsNcCsdS)Nr)rrrrrc
sz)AbstractPicklerUnpicklerObjectTests.setUpcCs�dddg}x�tD]�}tj�}|j||�}|j|�|j�}|jd�|j�|j|�|j�}|j�|jd�|j�|j|�|j�}|j	||�|j
||�qWdS)N�abcdefg�,r)rr!r,�
pickler_classr(rr#�truncateZ
clear_memo�assertNotEqualr])rrcrr�pickler�
first_pickledZsecond_pickledZ
third_pickledrrr�test_clear_pickler_memog
s"






z;AbstractPicklerUnpicklerObjectTests.test_clear_pickler_memocCsjdddg}tj�}|j|�}|j|�|j�}tj�}|j|�}|j|_|j|�|j�}|j||�dS)NrHrI)r!r,rJr(r�memorL)rrcrrMrN�primed�primed_pickledrrr�test_priming_pickler_memo�
s




z=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memoc
Cs�dddg}tj�}|j|�}|j|�|j�}tj�}|j|�}|j|_|j|�|j�}|jtj|��}|j�}|j||�|jtj|��}|j|_|j�}	|jj	�|j|	|�|j
|	|k�dS)NrHrI)r!r,rJr(rrP�unpickler_classr-r]�clearr3)
rrcrrMrNrQrR�	unpicklerZunpickled_data1Zunpickled_data2rrr�test_priming_unpickler_memo�
s&





z?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memocCs�dddg}tj�}|j|�}|j|�|j�}dddg}tj�}|j|�}|j|�|j�}tj�}|j|�|jd�|j|�}|j|j	�|�|jd�|j
�|j|�|jd�|j|j	�|�dS)NrHrIr)r!r,rJr(r�writer#rTr]r-rK)r�data1rrMZpickled1Zdata2Zpickled2rVrrr�test_reusing_unpickler_objects�
s(











zBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objectscCs�x�tD]�}|j|d���dd�td�D�dtg}|�}|j||d�}|j|�|j�}d}|||�}|j|�}xPt|�D]D}	|j�r�|j	�}
|j
|j�|�|j�r||j
|j	�|
t|��q|W|jt
|j�WdQRXqWdS)N)rcSsg|]}|t|�f�qSr)r?)rJr@rrrrK�
szSAbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings.<locals>.<listcomp>i�sabcde)rrP)rrdr�rrJr(rrTr r$r]r-rer
)rZioclassrrYrrMr�r�rVr1r�rrr�_check_multiple_unpicklings�
s"


z?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklingscCs|jtj�dS)N)r[r!r,)rrrr�"test_multiple_unpicklings_seekable�
szFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekablecCs|jt�dS)N)r[r)rrrr�$test_multiple_unpicklings_unseekable�
szHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekablecCs�ttd��}xntD]f}x`tdd�D]R}tjtj�|d�}|j||d�}|j|�|jd�|j	|�}|j
|j�|�q"WqWdS)Nr�r�)�buffer_size)rr)r�r�rr!�BufferedRandomr,rJr(r#rTr]r-)rrcrZbuf_sizerrMrVrrr�"test_unpickling_buffering_readline�
s



zFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readline)r%r&r'rJrTrrOrSrWrZr[r\r]rarrrrrG^
s rGZreduce_Ac@seZdZdd�ZdS)r_cCs
ttffS)N)r?r`)rrrrr<�
szAAA.__reduce__N)r%r&r'r<rrrrr_�
sr_c@seZdZdS)�BBBN)r%r&r'rrrrrbsrbc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�AbstractDispatchTableTestscCsDtj�}|j|d�}|jt��|jWdQRX|jt|d��dS)Nr�dispatch_table)r!r,rJrerrdr�r_)rrr�rrr�test_default_dispatch_tables
z6AbstractDispatchTableTests.test_default_dispatch_tablecs@�j��G�fdd�d�j��d���fdd�	}�j|��dS)NcseZdZ�ZdS)zGAbstractDispatchTableTests.test_class_dispatch_table.<locals>.MyPicklerN)r%r&r'rdr)�dtrr�	MyPicklersrgcs2tj�}�||�}�j|j��|j|�|j�S)N)r!r,r]rdr(r)rarrr�)rgrfrrrrs


zCAbstractDispatchTableTests.test_class_dispatch_table.<locals>.dumps)N)�get_dispatch_tablerJ�_test_dispatch_table)rrr)rgrfrr�test_class_dispatch_table
sz4AbstractDispatchTableTests.test_class_dispatch_tablecs(�j��d��fdd�	}�j|��dS)Ncs:tj�}�j||�}�|_�j|j��|j|�|j�S)N)r!r,rJrdr]r(r)rarrr�)rfrrrr!s
zFAbstractDispatchTableTests.test_instance_dispatch_table.<locals>.dumps)N)rhri)rrr)rfrr�test_instance_dispatch_tablesz7AbstractDispatchTableTests.test_instance_dispatch_tablec
sf�fdd�}dd�}d
}|j||�|�|j||�|�d��fdd	�}||t<|j||���|j||�|�t�}t�}|j||�t�|j||�t�|j||�t�|j||�t�||t<|j||�t�|j||���|j||�t�|j||�t�d
��fdd�}	|	|t<|t=|j||���|j||�t�|j||�t�|j||�t�dS)Ncstj�|d��S)Nr)rrf)ra)rrr�custom_load_dump,szIAbstractDispatchTableTests._test_dispatch_table.<locals>.custom_load_dumpcSstjtj|d��S)Nr)rrfr)rarrr�default_load_dump/szJAbstractDispatchTableTests._test_dispatch_table.<locals>.default_load_dumpry@�reduce_1cs
t�ffS)N)r?)ra)�REDUCE_1rrrn:szAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_1�reduce_2cs
t�ffS)N)r?)ra)�REDUCE_2rrrpQszAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_2y�?@)r]�complexr_rbr`r)
rrrdrlrm�zrnrBrCrpr)rorqrrri+s:z/AbstractDispatchTableTests._test_dispatch_tableN)r%r&r'rerjrkrirrrrrcsrc)rzDATA{0} = (r�z	    {0!r}�)z# Disassembly of DATA{0}zDATA{0}_DIS = """\z"""l)�r�r)r�r!r�rrr�rNZunittestr�Zhttp.cookiesrZtestrZtest.supportrrrrrr	r
rZ
skipUnlessrOrr�r(rrrr,rr(r1r5r7r�r9r:r=r&rXr>rArGrDrErFrIrorrqrrsZ	DATA2_DISruZ	DATA3_DISrwZ	DATA4_DISr�r�r�r��ArithmeticError�AssertionErrorrrg�BufferError�BytesWarning�DeprecationWarningr
�EnvironmentErrorr��FloatingPointError�
FutureWarning�
GeneratorExit�IOError�ImportError�
ImportWarning�IndentationError�
IndexErrorr��KeyboardInterrupt�LookupError�MemoryError�	NameErrorr�OSErrorr��PendingDeprecationWarning�ReferenceErrorr��RuntimeWarning�
StopIteration�SyntaxError�
SyntaxWarning�SystemError�
SystemExit�TabErrorr��UnboundLocalError�UnicodeError�UnicodeWarning�UserWarningr��Warning�ZeroDivisionErrorr�r�r�rXZTestCaserYr
r	r�r�r�r�r�r�r�r��floatrrrrr?rrr r@r�r*rJr,r�rCr=rErr�r�r�r�r�r#r7rBrGr`r_rbrcr%rr@r1rr�rir\r�jr�rCrrrr�<module>sV$		cMDDL
S
7(X


Youez - 2016 - github.com/yon3zu
LinuXploit