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/unittest/test/testmock/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/unittest/test/testmock/__pycache__/testpatch.cpython-36.opt-1.pyc
3

x2_���@s�ddlZddlZddlZddlmZddlmZmZddlm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZmZmZdZejeZdeZdd	d
�Ze
jae
jZGdd�de �Z!d
eZ"e!fdd�Z#Gdd�de �Z$Gdd�dej%�Z&edkr�ej'�dS)�N)�support)�	SomeClass�is_instance)�uncache)�NonCallableMock�
CallableMixin�sentinel�	MagicMock�Mock�NonCallableMagicMock�patch�_patch�DEFAULT�call�_get_target�builtinsz%s.PTModuleTcsBG�fdd�dt�}|s<�fdd�}�fdd�}||_||_|�S)NcseZdZ�fdd�ZdS)z_get_proxy.<locals>.Proxycs
t�|�S)N)�getattr)�self�name)�obj��E/opt/alt/python36/lib64/python3.6/unittest/test/testmock/testpatch.py�__getattr__sz%_get_proxy.<locals>.Proxy.__getattr__N)�__name__�
__module__�__qualname__rr)rrr�Proxysrcst�||�dS)N)�setattr)rr�value)rrr�__setattr__sz_get_proxy.<locals>.__setattr__cst�|�dS)N)�delattr)rr)rrr�__delattr__!sz_get_proxy.<locals>.__delattr__)�objectrr!)r�get_onlyrrr!r)rr�
_get_proxysr$c@s8eZdZdd�Zdd�Zdd�ZdZGdd	�d	e�Zd
S)�FoocCsdS)Nr)r�arrr�__init__.szFoo.__init__cCsdS)Nr)rr&rrr�f0szFoo.fcCsdS)Nr)rrrr�g2szFoo.g�barc@seZdZdd�ZdS)zFoo.BarcCsdS)Nr)rrrrr&7sz	Foo.Bar.aN)rrrr&rrrr�Bar6sr+N)	rrrr'r(r)�foor"r+rrrrr%-s
r%z%s.FoocCsdS)Nr)r&�brrr�function=sr.c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�	ContainercCs
i|_dS)N)�values)rrrrr'BszContainer.__init__cCs
|j|S)N)r0)rrrrr�__getitem__EszContainer.__getitem__cCs||j|<dS)N)r0)rrrrrr�__setitem__HszContainer.__setitem__cCs|j|=dS)N)r0)rrrrr�__delitem__KszContainer.__delitem__cCs
t|j�S)N)�iterr0)rrrr�__iter__NszContainer.__iter__N)rrrr'r1r2r3r5rrrrr/As
r/c@s*eZdZd�dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!d@dA�Z"dBdC�Z#dDdE�Z$dFdG�Z%dHdI�Z&dJdK�Z'dLdM�Z(dNdO�Z)dPdQ�Z*dRdS�Z+dTdU�Z,dVdW�Z-dXdY�Z.dZd[�Z/d\d]�Z0d^d_�Z1d`da�Z2dbdc�Z3ddde�Z4dfdg�Z5dhdi�Z6djdk�Z7dldm�Z8dndo�Z9dpdq�Z:drds�Z;dtdu�Z<dvdw�Z=dxdy�Z>dzd{�Z?d|d}�Z@d~d�ZAd�d��ZBd�d��ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZReSd�d��d�d���ZTeSd�d��d�d���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�d��Z`d�d��Zad�d„Zbd�dĄZcd�dƄZdd�S)��	PatchTestTcCs<t}|st}|jt|�|jt||��|jt|t��dS)N)rr�assertRaises�	TypeError�
assertTruer�assertFalser)rr�magic�	MockClassrrr�assertNotCallableUszPatchTest.assertNotCallablecsJGdd�dt��tj�dtj���fdd��}|��j�jtjd�dS)Nc@seZdZejZdS)z4PatchTest.test_single_patchobject.<locals>.SomethingN)rrrr�Original�	attributerrrr�	Something`sr@r?cs�j�jtjd�dS)N�	unpatched)�assertEqualr?r�Patchedr)r@rrr�testcsz/PatchTest.test_single_patchobject.<locals>.testzpatch not restored)r"rrrCrBr?r>)rrDr)r@rr�test_single_patchobject_s
z!PatchTest.test_single_patchobjectcsHGdd�dt��tj�dd���fdd��}|��j�jtjd�dS)Nc@seZdZejZdS)z7PatchTest.test_patchobject_with_none.<locals>.SomethingN)rrrrr>r?rrrrr@msr@r?cs�j�jd�dS)NrA)�assertIsNoner?r)r@rrrrDpsz2PatchTest.test_patchobject_with_none.<locals>.testzpatch not restored)r"rrBr?rr>)rrDr)r@rr�test_patchobject_with_nonels
z$PatchTest.test_patchobject_with_nonecslGdd�dt��tj�dtj�tj�dtj���fdd���}|��j�jtjd��j�jtj	d�dS)Nc@seZdZejZejZdS)z6PatchTest.test_multiple_patchobject.<locals>.SomethingN)rrrrr>r?�	Original2�next_attributerrrrr@zsr@r?rIcs(�j�jtjd��j�jtjd�dS)NrA)rBr?rrCrI�Patched2r)r@rrrrD~sz1PatchTest.test_multiple_patchobject.<locals>.testzpatch not restored)
r"rrrCrJrBr?r>rIrH)rrDr)r@rr�test_multiple_patchobjectys z#PatchTest.test_multiple_patchobjectc
CsFt}tdttj�dd��}ztja|�|jttj�Wd|aXdS)Nz%s.somethingcSsdS)NrrrrrrD�sz8PatchTest.test_object_lookup_is_quite_lazy.<locals>.test)�	somethingrrr�
Something2Zreplacement_valuerB)r�originalrDrrr� test_object_lookup_is_quite_lazy�sz*PatchTest.test_object_lookup_is_quite_lazycs�tdttj��fdd��}|��jtjtjd�tdttj�tdttj��fdd���}�jtjtjd��jtj	tjd�|��jtjtjd��jtj	tjd�t
�}tj|_tdt
|��fdd��}|�|��jt|d�dS)	Nz%s.somethingcs�jtjtjd�dS)NrA)rB�PTModulerLrrMr)rrrrD�sz"PatchTest.test_patch.<locals>.testzpatch not restoredz%s.something_elsecs(�jtjtjd��jtjtjd�dS)NrA)rBrPrLrrM�something_else�
SomethingElser)rrrrD�sz%s.opencs�jtdd�tjd�dS)N�filename�rzopen not patched)rB�openr�Handler)rrrrD�s)rrrrMrBrPrLr@rRrQr
rV�return_value�builtin_string�assertNotEqualrU)rrD�mockr)rr�
test_patch�s*zPatchTest.test_patchcs6tdttj��fdd��}|��jtjjd�dS)Nz%s.SomeClass.class_attributecs�jtjjtjd�dS)NrA)rBrPr�class_attributer�ClassAttributer)rrrrD�s
z2PatchTest.test_patch_class_attribute.<locals>.testzpatch not restored)rrrr]rFrPrr\)rrDr)rr�test_patch_class_attribute�s

z$PatchTest.test_patch_class_attributecs�Gdd�dt��tj�d���fdd��}|�tj�d�tj�d�����fdd���}d��|tjtj�\��|tjtj�dS)Nc@seZdZejZejZdS)z:PatchTest.test_patchobject_with_default_mock.<locals>.TestN)rrrrr>rLrH�
something2rrrr�Test�sr`rLcs"�j|�jd��j|td�dS)Nz"Mock not passed into test functionz.patch with two arguments did not create a mock)rBrL�assertIsInstancer	)rZ)r`rrrrD�s
z:PatchTest.test_patchobject_with_default_mock.<locals>.testr_cs��j|tjd��j|tjd��j|�jd��j|�jd��j|td��j|td��j�|d��j�|d�||fS)Nz0Patched function didn't receive initial argumentz/Patched function didn't receive second argumentz"Mock not passed into test functionz)Second Mock not passed into test functionz.patch with two arguments did not create a mockzunexpected value for mock1)	rBr�this1�this2r_rLrar	rY)rbrcZmock1Zmock2)r`�
outerMock1�
outerMock2rrrrD�s



)r"rrrbrc)rrDr)r`rdrerr�"test_patchobject_with_default_mock�s
 z,PatchTest.test_patchobject_with_default_mockcs&tdttd��fdd��}|�dS)Nz%s.SomeClass)�speccs2�jt|��jttjt���jtdd��dS)NcSstjS)N)r�
not_wibblerrrr�<lambda>sz>PatchTest.test_patch_with_spec.<locals>.test.<locals>.<lambda>)rBrr9r�wibbler	r7�AttributeError)�
MockSomeClass)rrrrD�sz,PatchTest.test_patch_with_spec.<locals>.test)rrr)rrDr)rr�test_patch_with_spec�szPatchTest.test_patch_with_speccs&tjtdtd��fdd��}|�dS)Nr\)rgcs6�jtj|��jttjjt���jtdd��dS)NcSstjjS)N)rr\rhrrrrriszDPatchTest.test_patchobject_with_spec.<locals>.test.<locals>.<lambda>)	rBrr\r9rrjr	r7rk)�
MockAttribute)rrrrDs
z2PatchTest.test_patchobject_with_spec.<locals>.test)rr"r)rrDr)rr�test_patchobject_with_specsz$PatchTest.test_patchobject_with_speccs(tdtdgd��fdd��}|�dS)Nz%s.SomeClassrj)rgcs2�jt|��jttjt���jtdd��dS)NcSstjS)N)rrhrrrrriszFPatchTest.test_patch_with_spec_as_list.<locals>.test.<locals>.<lambda>)rBrr9rrjr	r7rk)rl)rrrrDsz4PatchTest.test_patch_with_spec_as_list.<locals>.test)rr)rrDr)rr�test_patch_with_spec_as_listsz&PatchTest.test_patch_with_spec_as_listcs(tjtddgd��fdd��}|�dS)Nr\rj)rgcs6�jtj|��jttjjt���jtdd��dS)NcSstjjS)N)rr\rhrrrrri$szLPatchTest.test_patchobject_with_spec_as_list.<locals>.test.<locals>.<lambda>)	rBrr\r9rrjr	r7rk)rn)rrrrDs
z:PatchTest.test_patchobject_with_spec_as_list.<locals>.test)rr"r)rrDr)rr�"test_patchobject_with_spec_as_listsz,PatchTest.test_patchobject_with_spec_as_listcs4tdt�tdtdgd��fdd���}|�dS)Nz%s.openz%s.SomeClassrj)rgcs2�jt|��jttjt���jtdd��dS)NcSstjS)N)rrhrrrrri0szMPatchTest.test_nested_patch_with_spec_as_list.<locals>.test.<locals>.<lambda>)rBrr9rrjr	r7rk)rlZMockOpen)rrrrD+sz;PatchTest.test_nested_patch_with_spec_as_list.<locals>.test)rrXr)rrDr)rr�#test_nested_patch_with_spec_as_list)s
 z-PatchTest.test_nested_patch_with_spec_as_listcs&tdtdd��fdd��}|�dS)Nz%s.SomeClassT)rgcs*�jt���j�jt�fdd��dS)Ncs�jS)N)rhr)rlrrri;szIPatchTest.test_patch_with_spec_as_boolean.<locals>.test.<locals>.<lambda>)rBrrjr7rk)rl)r)rlrrD5sz7PatchTest.test_patch_with_spec_as_boolean.<locals>.test)rr)rrDr)rr�test_patch_with_spec_as_boolean4sz)PatchTest.test_patch_with_spec_as_booleancs&tjtddd��fdd��}|�dS)NrT)rgcs*�jt���j�jt�fdd��dS)Ncs�jS)N)rhr)rlrrriGszPPatchTest.test_patch_object_with_spec_as_boolean.<locals>.test.<locals>.<lambda>)rBrrjr7rk)rl)r)rlrrDAsz>PatchTest.test_patch_object_with_spec_as_boolean.<locals>.test)rr"rP)rrDr)rr�&test_patch_object_with_spec_as_boolean@sz0PatchTest.test_patch_object_with_spec_as_booleancs&tdtdd��fdd��}|�dS)Nz%s.SomeClassT)rgcs>�jt|t��|���j���j�jt�fdd��dS)Ncs�jS)N)rhr)�instancerrriUszVPatchTest.test_patch_class_acts_with_spec_is_inherited.<locals>.test.<locals>.<lambda>)r9rr	r=rjr7rk)rl)r)rurrDMs

zDPatchTest.test_patch_class_acts_with_spec_is_inherited.<locals>.test)rr)rrDr)rr�,test_patch_class_acts_with_spec_is_inheritedLs
z6PatchTest.test_patch_class_acts_with_spec_is_inheritedcs:tdttjdd��fdd��}|��jtdd��dS)Nz
%s.froobleT)�createcs�jttj�dS)N)rB�froobler�Froobler)rrrrD[szLPatchTest.test_patch_with_create_mocks_non_existent_attributes.<locals>.testcSstS)N)rxrrrrri`szPPatchTest.test_patch_with_create_mocks_non_existent_attributes.<locals>.<lambda>)rrXrryr7�	NameError)rrDr)rr�4test_patch_with_create_mocks_non_existent_attributesZs z>PatchTest.test_patch_with_create_mocks_non_existent_attributescs:tjtdtjdd��fdd��}|��jttd��dS)NrxT)rwcs�jtjtj�dS)N)rBrrxrryr)rrrrDdszRPatchTest.test_patchobject_with_create_mocks_non_existent_attributes.<locals>.test)rr"rrryr:�hasattr)rrDr)rr�:test_patchobject_with_create_mocks_non_existent_attributescs zDPatchTest.test_patchobject_with_create_mocks_non_existent_attributescsZy&tdttj��fdd��}|�Wntk
r:YnX�jd��jtdd��dS)Nz
%s.frooblecs�jttj�dS)N)rBrxrryr)rrrrDnsz9PatchTest.test_patch_wont_create_by_default.<locals>.testz,Patching non existent attributes should failcSstS)N)rxrrrrrixsz=PatchTest.test_patch_wont_create_by_default.<locals>.<lambda>)rrXrryrk�failr7rz)rrDr)rr�!test_patch_wont_create_by_defaultls

z+PatchTest.test_patch_wont_create_by_defaultcsZy&tjtdtj��fdd��}|�Wntk
r:YnX�jd��jttd��dS)N�ordcs�jd�dS)Nz,Patching non existent attributes should fail)r~r)rrrrD}sz?PatchTest.test_patchobject_wont_create_by_default.<locals>.testz,Patching non existent attributes should fail)	rr"rrryrkr~r:r|)rrDr)rr�'test_patchobject_wont_create_by_default{s

z1PatchTest.test_patchobject_wont_create_by_defaultcCsHttd�dd��}ttd�dd��}|j|�d�|j|�d�dS)	Nz.ordcSsd|_td�S)N�e�c)rWr�)Zmock_ordrrr�test_ord�sz>PatchTest.test_patch_builtins_without_create.<locals>.test_ordz.opencSs*|j}d|j_td�}|j�}|j�|S)N�abcdzdoesnotexists.txt)rW�readrU�close)Z	mock_open�mZfobj�datarrr�	test_open�sz?PatchTest.test_patch_builtins_without_create.<locals>.test_openr�r�)rrrB)rr�r�rrr�"test_patch_builtins_without_create�s
z,PatchTest.test_patch_builtins_without_createcsPGdd�dt��tj�dtdd�����fdd��}|��j�j�tj�dS)Nc@seZdZedd��ZdS)z5PatchTest.test_patch_with_static_methods.<locals>.FoocSstjS)N)r�Staticrrrr�woot�sz:PatchTest.test_patch_with_static_methods.<locals>.Foo.wootN)rrr�staticmethodr�rrrrr%�sr%r�cSstjS)N)rrCrrrrri�sz:PatchTest.test_patch_with_static_methods.<locals>.<lambda>cs�j�j�tj�dS)N)rBr�rrCr)r%rrr�	anonymous�sz;PatchTest.test_patch_with_static_methods.<locals>.anonymous)r"rr�rBr�rr�)rr�r)r%rr�test_patch_with_static_methods�s$z(PatchTest.test_patch_with_static_methodscs8tj}tjtdd��fdd��}|��jtj|�dS)Nr%cs�jtjd�dS)Nr%)rBrr%r)rrrr��sz-PatchTest.test_patch_local.<locals>.anonymous)rr%rr"rB)rr,r�r)rr�test_patch_local�szPatchTest.test_patch_localcsTGdd�dt�}|��tj�_tj�dd���fdd��}|��j�jtj�dS)Nc@seZdZdZdS)z'PatchTest.test_patch_slots.<locals>.Foor%N)r%)rrr�	__slots__rrrrr%�sr%cs�j�jd�dS)Nr%)rBr%r)r,rrrr��sz-PatchTest.test_patch_slots.<locals>.anonymous)r"rr%rrB)rr%r�r)r,rr�test_patch_slots�szPatchTest.test_patch_slotscsfGdd�dt��G��fdd�dt�}tj�dtj�|�}|�}|j�|j��j�jtjd�dS)Nc@seZdZejZdS)z=PatchTest.test_patchobject_class_decorator.<locals>.SomethingN)rrrrr>r?rrrrr@�sr@cs(eZdZ��fdd�Z��fdd�ZdS)z7PatchTest.test_patchobject_class_decorator.<locals>.Foocs�j�jtjd�dS)NrA)rBr?rrC)�
other_self)r@rrr�test_method�szCPatchTest.test_patchobject_class_decorator.<locals>.Foo.test_methodcs�j�jtjd�dS)Nznon-test method patched)rBr?rr>)r�)r@rrr�not_test_method�szGPatchTest.test_patchobject_class_decorator.<locals>.Foo.not_test_methodN)rrrr�r�r)r@rrrr%�sr%r?zpatch not restored)	r"rrrCr�r�rBr?r>)rr%r(r)r@rr� test_patchobject_class_decorator�sz*PatchTest.test_patchobject_class_decoratorcsrGdd�dt�}G�fdd�dt�}tdt�|�}|�}|j�|j��j|jtjd��jt	j
tjd�dS)Nc@seZdZejZdS)z7PatchTest.test_patch_class_decorator.<locals>.SomethingN)rrrrr>r?rrrrr@�sr@cs$eZdZ�fdd�Z�fdd�ZdS)z1PatchTest.test_patch_class_decorator.<locals>.Foocs�jtj|d�dS)NrA)rBrPrL)r�Zmock_something)rrrr��s
z=PatchTest.test_patch_class_decorator.<locals>.Foo.test_methodcs�jtjtjd�dS)Nznon-test method patched)rBrPrLrr@)r�)rrrr��szAPatchTest.test_patch_class_decorator.<locals>.Foo.not_test_methodN)rrrr�r�r)rrrr%�sr%z%s.somethingzpatch not restored)r"rrr�r�rBr?rr>rPrLr@)rr@r%r(r)rr�test_patch_class_decorator�sz$PatchTest.test_patch_class_decoratorcsZGdd�dt��tj�dtj�tj�dtj���fdd���}|��j�jtjd�dS)Nc@seZdZejZejZdS)z3PatchTest.test_patchobject_twice.<locals>.SomethingN)rrrrr>r?rHrIrrrrr@�sr@r?cs�j�jtjd�dS)NrA)rBr?rrCr)r@rrrrD�sz.PatchTest.test_patchobject_twice.<locals>.testzpatch not restored)r"rrrCrBr?r>)rrDr)r@rr�test_patchobject_twice�s z PatchTest.test_patchobject_twicecs�t�dd���j�}tj���fdd��}|��j�|�tj�ddi���fdd��}|��j�|�tj�d	g���fdd��}|��j�|�dS)
NrL)�initial�othercsd�d<�d=d�d<dS)N�r&r�zsomething elser�rr)r,rrrDsz'PatchTest.test_patch_dict.<locals>.testr&r-cs$�jt��d��j�dd�dS)Nr�r&r-)rB�lenr)r,rrrrDscs$�jt��d��j�dd�dS)Nr�r&r-)rBr�r)r,rrrrDs)r&r-)r"�copyr�dictrB)rrNrDr)r,rr�test_patch_dictszPatchTest.test_patch_dictcs�t��t��d<d�d<�jj�}tj���fdd��}|��j�j|�tj�ddi���fdd��}|��j�j|�dS)	Nr�rLr�csd�d<�d=d�d<dS)Nr�r&r�zsomething elser�rr)r,rrrD)sz=PatchTest.test_patch_dict_with_container_object.<locals>.testr&r-cs&�jt�j�d��j�dd�dS)Nr�r&r-)rBr�r0r)r,rrrrD3s)r/r"r0r�rr�rB)rrNrDr)r,rr�%test_patch_dict_with_container_object"s

z/PatchTest.test_patch_dict_with_container_objectcs�t�dd���j�}tj�dd���fdd��}|��j�|�tj�ddidd���fd	d��}|��j�|�tj�dgdd���fd
d��}|��j�|�dS)NrL)r�r�T)�clearcs �j�i�d�d<d�d<dS)Nr�r&zsomething elser�)rBr)r,rrrrDAsz2PatchTest.test_patch_dict_with_clear.<locals>.testr&r-cs�j�ddi�dS)Nr&r-)rBr)r,rrrrDKscs�j�ddi�dS)Nr&r-)rBr)r,rrrrDSs)r&r-)r"r�rr�rB)rrNrDr)r,rr�test_patch_dict_with_clear=s" z$PatchTest.test_patch_dict_with_clearcs�t��t��d<d�d<�jj�}tj�dd���fdd��}|��j�j|�tj�dd	idd���fd
d��}|��j�j|�dS)Nr�rLr�T)r�cs"�j�ji�d�d<d�d<dS)Nr�r&zsomething elser�)rBr0r)r,rrrrDcszGPatchTest.test_patch_dict_with_container_object_and_clear.<locals>.testr&r-cs�j�jddi�dS)Nr&r-)rBr0r)r,rrrrDms)r/r"r0r�rr�rB)rrNrDr)r,rr�/test_patch_dict_with_container_object_and_clear\s

"z9PatchTest.test_patch_dict_with_container_object_and_clearcCsZi}tdtt��tdtt�dd�tjtt��tj|�dd�����}|j|jd�dS)Nz%s.SomeClassT)�autospeccSsdS)Nrrrrr�	some_nameysz0PatchTest.test_name_preserved.<locals>.some_namer�)rrr"rr�rB)rr,r�rrr�test_name_preservedvszPatchTest.test_name_preservedcCsVi}tj|ddi�dd��}y
|�Wntk
r:YnX|jd�|j|i�dS)Nr&r-cSstd��dS)NZKonrad)rzrrrrrD�sz1PatchTest.test_patch_with_exception.<locals>.testzNameError not raised by test)rr�rzr~rB)rr,rDrrr�test_patch_with_exception�s

z#PatchTest.test_patch_with_exceptioncs&tjdddi��fdd��}|�dS)Nz
os.environ�
konrad_delongz
some valuecs�jdtj�dS)Nr�)�assertIn�os�environr)rrrrD�sz3PatchTest.test_patch_dict_with_string.<locals>.test)rr�)rrDr)rr�test_patch_dict_with_string�sz%PatchTest.test_patch_dict_with_stringcsdS)Nc@seZdZdZdS)z0PatchTest.test_patch_descriptor.<locals>.NothingN)rrrr,rrrr�Nothing�sr�cs|eZdZiZej�dd�e��fdd���Zej�dd�edd���Z	ej
e�e��fdd���Zej
e�ed	d
���ZdS)z2PatchTest.test_patch_descriptor.<locals>.Somethingr,�cs�j|��dS)N)�assertIs)�cls)r@rrr�klass�sz8PatchTest.test_patch_descriptor.<locals>.Something.klasscSs|S)Nr)�argrrr�static�sz9PatchTest.test_patch_descriptor.<locals>.Something.staticcs�j|��dS)N)r�)r�)r@rrr�
klass_dict�sz=PatchTest.test_patch_descriptor.<locals>.Something.klass_dictcSs|S)Nr)r�rrr�static_dict�sz>PatchTest.test_patch_descriptor.<locals>.Something.static_dictN)
rrrr,rr"�classmethodr�r�r�r�r�r�r)r�r@rrrr@�sr@Zf00)r"rBr�r�r�r�)rrLr)r�r@rr�test_patch_descriptor�szPatchTest.test_patch_descriptorcCs�tdttdd�dd��}|jt|�tjtdtdd�dd��}|jt|�tdtdd�d	d��}|jt|�tjtddd�d
d��}|jt|�dS)Nz%s.SomeClassT)rg�spec_setcSs
d|_dS)Nr,)�z)r<rrrrD�sz+PatchTest.test_patch_spec_set.<locals>.testrcSs
d|_dS)Nr,)r�)r<rrrrD�s)r�cSs
d|_dS)Nr,)r�)r<rrrrD�scSs
d|_dS)Nr,)r�)r<rrrrD�s)rrrr7rkr"r)rrDrrr�test_patch_spec_set�szPatchTest.test_patch_spec_setcCs(tdtdd�dd��}|jt|�dS)Nz%s.SomeClassT)r�cSs|�}d|_dS)Nr,)r�)r<rurrrrD�sz-PatchTest.test_spec_set_inherit.<locals>.test)rrr7rk)rrDrrr�test_spec_set_inherit�szPatchTest.test_spec_set_inheritcCs\t}tdt�}|jt|�|j�}z|j||�|jt|�Wd|j�X|jt|�dS)Nz%s.something)rLrrr��start�assertIsNot�stop)rrN�patcherrZrrr�test_patch_start_stop�s
zPatchTest.test_patch_start_stopcCsttdd�}|jt|j�dS)Nr*r�)r�foo_namer7�RuntimeErrorr�)rr�rrr�test_stop_without_start�sz!PatchTest.test_stop_without_startcCs^t}tjtdd�}|jt|�|j�}z|j|d�|jt|�Wd|j�X|jt|�dS)NrLr,)rLrr"rPr�r�rBr�)rrNr�Zreplacedrrr�test_patchobject_start_stop�s
z%PatchTest.test_patchobject_start_stopcCsfddi}|j�}tj|dgdd�}|j||�|j�z|j|ddi�Wd|j�X|j||�dS)Nr,r*�spam�eggsT)r�)r�r�)r�rr�rBr�r�)r�drNr�rrr�test_patch_dict_start_stop	s
z$PatchTest.test_patch_dict_start_stopcs�|�ddi��j�}G��fdd�dt�}tj�ddidd�|�}|j�|�|�}|j�|j�|�|j�|j�|�|�}|j�|j�|�|j�|j�|�dS)	Nr�r�cs(eZdZ��fdd�Z��fdd�ZdS)z7PatchTest.test_patch_dict_class_decorator.<locals>.Testcs�j�ddi�dS)Nr,r*)rB)r)r��thisrr�
test_firstszBPatchTest.test_patch_dict_class_decorator.<locals>.Test.test_firstcs�j�ddi�dS)Nr,r*)rB)r)r�r�rr�test_secondszCPatchTest.test_patch_dict_class_decorator.<locals>.Test.test_secondN)rrrr�r�r)r�r�rrr`sr`r,r*T)r�)r�r"rr�rBr�r�)rrNr`rDr)r�r�r�test_patch_dict_class_decorators z)PatchTest.test_patch_dict_class_decoratorcs�Gdd�dt�}Gdd�d�}xj|||�|fD]X}t|��tj�dd���fdd��}|��j�jd��j|jd��jd�j�q.WdS)	Nc@seZdZdZdS)z0PatchTest.test_get_only_proxy.<locals>.Somethingr,N)rrrr,rrrrr@7sr@c@seZdZdZdS)z4PatchTest.test_get_only_proxy.<locals>.SomethingElser,N)rrrr,rrrrrR9srRr,r*cs�j�jd�dS)Nr*)rBr,r)�proxyrrrrD?sz+PatchTest.test_get_only_proxy.<locals>.test)r"r$rrBr,�assertNotIn�__dict__)rr@rR�thingrDr)r�rr�test_get_only_proxy6szPatchTest.test_get_only_proxycs�Gdd�dt�}Gdd�d�}xn|||�|fD]\}t|dd��tj�dd���fd	d
��}|��j�jd��j|jd��jd�j�q.WdS)Nc@seZdZdZdS)z6PatchTest.test_get_set_delete_proxy.<locals>.Somethingr,N)rrrr,rrrrr@Isr@c@seZdZdZdS)z:PatchTest.test_get_set_delete_proxy.<locals>.SomethingElser,N)rrrr,rrrrrRKsrRF)r#r,r*cs�j�jd�dS)Nr*)rBr,r)r�rrrrDQsz1PatchTest.test_get_set_delete_proxy.<locals>.test)r"r$rrBr,r�r�)rr@rRr�rDr)r�rr�test_get_set_delete_proxyHsz#PatchTest.test_get_set_delete_proxycCsZtdt�d�}ttf|�}|j�}|j�|jt|�|j|jj	�d�|j
|jt�dS)N�!)�side_effectzfoo.bar.return_valuer,)�KeyErrorr	rr�r�r�r7rBr,r*ra)r�kwargsr�rZrrr�test_patch_keyword_argsZs
z!PatchTest.test_patch_keyword_argscCs^tdt�d�}tjtdf|�}|j�}|j�|jt|�|j|j	j
�d�|j|j	t�dS)Nr�)r�zfoo.bar.return_valuer,r()r�r	rr"r%r�r�r7rBr,r*ra)rr�r�rZrrr�test_patch_object_keyword_argsgs
z(PatchTest.test_patch_object_keyword_argsc
Cs`ddi}|j�}tj|dddd�}|j�z|j|tdddd��Wd|j�X|j||�dS)Nr,r*r���)r,r*Zbaz)r�rr�r�rBr�)rrNr�r�rrr�test_patch_dict_keyword_argsts
z&PatchTest.test_patch_dict_keyword_argscs�Gdd�dt�}�fdd���fdd�����fdd�}ttd	d
�|�}|�}�jt|�|�tjt}tj|dd	d
�|�}|�}�jt|�|�dS)Nc@s8eZdZdd�Zdd�Zdd�ZdZGdd	�d	e�Zd
S)z$PatchTest.test_autospec.<locals>.BoocSsdS)Nr)rr&rrrr'�sz-PatchTest.test_autospec.<locals>.Boo.__init__cSsdS)Nr)rr&rrrr(�sz&PatchTest.test_autospec.<locals>.Boo.fcSsdS)Nr)rrrrr)�sz&PatchTest.test_autospec.<locals>.Boo.gr*c@seZdZdd�ZdS)z(PatchTest.test_autospec.<locals>.Boo.BarcSsdS)Nr)rrrrr&�sz*PatchTest.test_autospec.<locals>.Boo.Bar.aN)rrrr&rrrrr+�sr+N)	rrrr'r(r)r,r"r+rrrr�Boo�s
r�cs"|d�|jd��jt|�dS)N�)�assert_called_withr7r8)rZ)rrr�_test�s
z&PatchTest.test_autospec.<locals>._testcs|jd�|jjd��jt|j�|j�|jj��jt|jd��jtt|d�|jj�|jjj��jtt|jd�|j	�|j	j�|j	j
�|j	j
j��jt|j	j
d�|j	�j
�|j	�j
j��jt|j	�j
d��jtt|j	d��jtt|j	�d�dS)Nr��hr*r-)r(r�r7r8r)rkrr,�lowerr+r&)rZ)rrr�_test2�s(




z'PatchTest.test_autospec.<locals>._test2cs,�|��|��|d���j|t�|S)Nr�)r�r%)rZ)r�r�rrrr.�s
z)PatchTest.test_autospec.<locals>.functionT)r�r%)r"rr�r�r%�sys�modulesr)rr�r.rDrZ�moduler)r�r�rr�
test_autospec�s

zPatchTest.test_autospeccs&tdtdd��fdd��}|�dS)Nz%s.functionT)r�cs�tj��jttj��jttj�td��jttj�tjd�tj�tj�tdd�tjdd��jtt��jtt	td�dS)Nr�r�r�r,)
r.Zassert_not_calledr7�AssertionErrorZ
assert_calledZassert_called_oncer�r8rkr)rZ)rrrrD�s

z.PatchTest.test_autospec_function.<locals>.test)rr)rrDr)rr�test_autospec_function�sz PatchTest.test_autospec_functioncCs0tdtddd�dd��}|�}|j|d�dS)Nz%s.functionTr�)r�rWcSs
tdd�S)Nr�r�)r.)Z
mock_functionrrrrD�sz.PatchTest.test_autospec_keywords.<locals>.test)rrrB)rrD�resultrrr�test_autospec_keywords�s
z PatchTest.test_autospec_keywordscCsNtdtddd�}|jt|j�tjt}tj|dddd�}|jt|j�dS)Nz%s.functionr�T)�newr�r.)rrr7r8r�r�r�r")rr�r�rrr�test_autospec_with_new�s

z PatchTest.test_autospec_with_newc
CsRGdd�dt�}tt|d�}|j�}z|j||�|j|jt�Wd|j�XdS)Nc@seZdZgZdS)z0PatchTest.test_autospec_with_object.<locals>.BarN)rrr�extrarrrrr+�sr+)r�)r%rr�r�rar��listr�)rr+r�rZrrr�test_autospec_with_object�sz#PatchTest.test_autospec_with_objectc
CsHt}ttdd�}|j�}z |j||�|j|d�|�Wd|j�XdS)NT)r�r�)r%rr�r�rar�)rZFooClassr�rZrrr�test_autospec_inherits�sz PatchTest.test_autospec_inheritscCstttdd�}|j�}zP|jdt|��|jdt|j��|jdt|d���|jdt|d�j��Wd|j�XdS)NT)r�z name='Foo'z
 name='Foo.f'z
 name='Foo()'z name='Foo().f')rr�r�r��reprr(r�)rr�rZrrr�test_autospec_name
szPatchTest.test_autospec_namec
Csbtjtdt��dd��}y
|�Wntj�}YnXtjddd�}|j||�}|jd|�dS)Nr(cSst�dS)N)r�rrrrrDsz'PatchTest.test_tracebacks.<locals>.testrzraise AssertionError)	rr"r%r��exc_info�unittestZTextTestResultZ_exc_info_to_stringr�)rrD�errr��	tracebackrrr�test_tracebackss
zPatchTest.test_tracebackscCsXtttd�}|j�}|j�|j�}|j�|j||�x||fD]}|j|�qBWdS)N)�new_callable)rr�rr�r�r�r=)rr��m1�m2rZrrr�test_new_callable_patch%sz!PatchTest.test_new_callable_patchcCs\tjtdtd�}|j�}|j�|j�}|j�|j||�x||fD]}|j|�qFWdS)Nr()r�)rr"r%rr�r�r�r=)rr�r�r�rZrrr�test_new_callable_patch_object2sz(PatchTest.test_new_callable_patch_objectcsfG�fdd�dt��tt�ddd�}|j�}z*|jt|���|j�jtddd��Wd|j	�XdS)NcseZdZdZ�fdd�ZdS)z:PatchTest.test_new_callable_keyword_arguments.<locals>.BarNcs
|�_dS)N)r�)rr�)r+rrr'BszCPatchTest.test_new_callable_keyword_arguments.<locals>.Bar.__init__)rrrr�r'r)r+rrr+@sr+r�r�)r��arg1�arg2)r�r�)
r"rr�r�r��typerBr�r�r�)rr�r�r)r+r�#test_new_callable_keyword_arguments?sz-PatchTest.test_new_callable_keyword_argumentscs�G�fdd�dt��tt��d�}|j�z|j�jt�d��Wd|j�Xtt��d�}|j�z|j�jt�d��Wd|j�XdS)NcseZdZdZ�fdd�ZdS)z-PatchTest.test_new_callable_spec.<locals>.BarNcs
|�_dS)N)r�)rr�)r+rrr'Qsz6PatchTest.test_new_callable_spec.<locals>.Bar.__init__)rrrr�r'r)r+rrr+Osr+)r�rg)rg)r�r�)r�)r"rr�r�rBr�r�r�)rr�r)r+r�test_new_callable_specNs
z PatchTest.test_new_callable_specc
CsZdt}t|td�}|jt|j�t|tdd�}|j�}z|j|dd�Wd|j�XdS)Nz	%s.weeeee)r�T)r�rwF)r;)r�rrr7rkr�r=r�)rZnon_existent_attr�pr�rrr�test_new_callable_createcsz"PatchTest.test_new_callable_createcCs4|jtttt�td�|jttjtdt�td�dS)N)r�r�r()r7�
ValueErrorrr�r"r	r%)rrrr�'test_new_callable_incompatible_with_newqs
z1PatchTest.test_new_callable_incompatible_with_newcCs0|jttttdd�|jttjtdtdd�dS)NT)r�r�r()r7rrr�r	r"r%)rrrr�,test_new_callable_incompatible_with_autospec{sz6PatchTest.test_new_callable_incompatible_with_autospecc	
Cs�Gdd�dt�}tttt|f}xd|D]\}xVdD]N}|di}ttfd|i|��}|j�}z|j}|jt	t
|d�Wd|j�Xq.Wq$WdS)	Nc@seZdZdS)z>PatchTest.test_new_callable_inherit_for_mocks.<locals>.MockSubN)rrrrrrr�MockSub�srrgr�Tr��x)rgr�)r
rrr	rr�r�rWr7rkrr�)	rrZMockClassesZKlassr�r�rr�rurrr�#test_new_callable_inherit_for_mocks�s

z-PatchTest.test_new_callable_inherit_for_mockscCshGdd�dt�}tt|dd�}|j�}z$|jt||��|jtt|d�Wd|j	�X|j
|jt�dS)Nc@seZdZdd�ZdS)z>PatchTest.test_new_callable_inherit_non_mock.<locals>.NotAMockcSs
||_dS)N)rg)rrgrrrr'�szGPatchTest.test_new_callable_inherit_non_mock.<locals>.NotAMock.__init__N)rrrr'rrrr�NotAMock�srT)r�rgrW)
r"rr�r�r9rr7rkrr�rBrgr%)rrrr�rrr�"test_new_callable_inherit_non_mock�s
z,PatchTest.test_new_callable_inherit_non_mockcsR|�t�G��fdd�dt�}tttd�|�}|�j�|�j�|jt��dS)Ncs*eZdZ��fdd�Zdd�Zdd�ZdS)z>PatchTest.test_new_callable_class_decorating.<locals>.SomeTestcs(�jt���jt|��jtt�dS)N)r�r%r�rar)r�mock_foo)rNrDrrr��szDPatchTest.test_new_callable_class_decorating.<locals>.SomeTest._testcSs|j|�dS)N)r�)rr
rrr�test_two�szGPatchTest.test_new_callable_class_decorating.<locals>.SomeTest.test_twocSs|j|�dS)N)r�)rr
rrr�test_one�szGPatchTest.test_new_callable_class_decorating.<locals>.SomeTest.test_oneN)rrrr�rrr)rNrDrr�SomeTest�sr)r�)r%r"rr�rrrr�)rrr)rNrDr�"test_new_callable_class_decorating�s

z,PatchTest.test_new_callable_class_decoratingcs�t�tj}tj}tjtddd�}tjtddd�}xx||fD]l}|j�z,�jt���jtjd��jtjd�Wd|j	�X�jt���jtj|��jtj|�q:Wtjtddd���fdd��}|�dS)Nr�r�)r(r)r�r�cs,�jt���jtjd��jtjd�dS)Nr�r�)r�r%rBr(r)r)�original_foorrrrD�sz+PatchTest.test_patch_multiple.<locals>.test)
r%r(r)r�multipler�r�r�rBr�)r�
original_f�
original_gZpatcher1Zpatcher2r�rDr)rrr�test_patch_multiple�s"
zPatchTest.test_patch_multiplecCs$|jttjt�|jttjt�dS)N)r7rrrr�r%)rrrr�test_patch_multiple_no_kwargs�sz'PatchTest.test_patch_multiple_no_kwargscsVt�tj}tj}tjttdtd���fdd��}|��jtj|��jtj|�dS)Nr�)r(r)r,csZ�jt���jtj|��jtjd��jtj|��jt|t���jt|t��dS)Nr�)	r�r%r(rBr)r,r9rr	)r(r,)rrrrrD�sz8PatchTest.test_patch_multiple_create_mocks.<locals>.test)r%r(r)rrr�rrB)rrrrDr)rrr� test_patch_multiple_create_mocks�s 	z*PatchTest.test_patch_multiple_create_mockscsrtj}tj}tjtdd�}d|_tjtdt�}d|_|g|_|�fdd��}|��jtj|��jtj|�dS)Nr(r�r)cs �jtj|��jtjd�dS)Nr�)r�r%r)rBr()r))rrrrDszHPatchTest.test_patch_multiple_create_mocks_different_order.<locals>.test)	r%r(r)rr"�attribute_namer�additional_patchersrB)rrrr�r�rDr)rr�0test_patch_multiple_create_mocks_different_order�sz:PatchTest.test_patch_multiple_create_mocks_different_ordercs�t�tj}tj}tjttd�tjttd�ttd��fdd����}tjttd�ttd�tjttd��fdd����}ttd�tjttd�tjttd��fdd	����}��fd
d��|�|�|��jtj|��jtj|�dS)N)r()r,z.gcs�|f|�dS)Nr)r)r�)r�rr�test1sz?PatchTest.test_patch_multiple_stacked_decorators.<locals>.test1cs�|f|�dS)Nr)r)r�)r�rr�test2sz?PatchTest.test_patch_multiple_stacked_decorators.<locals>.test2cs�|f|�dS)Nr)r)r�)r�rr�test3sz?PatchTest.test_patch_multiple_stacked_decorators.<locals>.test3cs�|jd�}|jd�}�j|��jt���jtj|��jtj|��jtj|��jt|t	���jt|t	���jt|t	��dS)Nr(r,)
�popr:r�r%r(r)r,r9rr	)r)r�r(r,)rrrrr�"s


z?PatchTest.test_patch_multiple_stacked_decorators.<locals>._test)r%r(r)rrr�rrB)rrrrrrr)r�rrr�&test_patch_multiple_stacked_decoratorss$


z0PatchTest.test_patch_multiple_stacked_decoratorscCs�t}tj}tj}tjttdtd�}|j�}zt|d}|d}|jt	|�t	ddg��|j
t|�|j
tj|�|j
tj|�|jt
|t��|jt
|t��Wd|j�X|jtj|�|jtj|�dS)Nr�)r(r)r,r(r,)r%r(r)rrr�rr�rB�setr�r,r9rr	r�)rrrrr�r�r(r,rrr�(test_patch_multiple_create_mocks_patcher6s"
z2PatchTest.test_patch_multiple_create_mocks_patchercsv|�t�tj}tj}G��fdd�dt�}tjttdtd�|�}|�}|j�|j	�|j
tj|�|j
tj|�dS)Ncs*eZdZ��fdd�Zdd�Zdd�ZdS)z@PatchTest.test_patch_multiple_decorating_class.<locals>.SomeTestcsZ�jt���jtj|��jtjd��jtj|��jt|t���jt|t��dS)Nr�)	r�r%r(rBr)r,r9rr	)rr(r,)rrDrrr�WszFPatchTest.test_patch_multiple_decorating_class.<locals>.SomeTest._testcSs|j||�dS)N)r�)rr(r,rrrr_szIPatchTest.test_patch_multiple_decorating_class.<locals>.SomeTest.test_twocSs|j||�dS)N)r�)rr(r,rrrraszIPatchTest.test_patch_multiple_decorating_class.<locals>.SomeTest.test_oneN)rrrr�rrr)rrDrrrUsrr�)r(r)r,)r%r(r)r"rrr�rrrrB)rrrrr�r)rrDr�$test_patch_multiple_decorating_classOsz.PatchTest.test_patch_multiple_decorating_classcCsftjtdd�}|jt|j�tjtddd�}|j�z|jtjd�Wd|j�X|j	t
td��dS)N�blam)r$T)r$rw)rrr%r7rkr�rBr$r�r:r|)rr�rrr�test_patch_multiple_createps
z$PatchTest.test_patch_multiple_createcCs�tjttddgd�}|j�}z^|jtj|d�tjjd�tjjd�tjjj	d�tjjj	d�|j
tttjdd�Wd|j
�XdS)Nr&r-)r,r�r,r�r�r�)rrr%rr�rBr,r&r-r�r7rkrr�)rr�r�rrr�test_patch_multiple_spec_set~sz&PatchTest.test_patch_multiple_spec_setc
Cs�Gdd�dt�}tjttt|d�}|j�}zT|jtj|d�|jtj|d�|j	tj|�|j	tj|�|j
tjtj�Wd|j�XdS)Nc@seZdZdS)z9PatchTest.test_patch_multiple_new_callable.<locals>.ThingN)rrrrrrr�Thing�sr')r(r)r�r(r))r"rrr%rr�r�r(r)rar�r�)rr'r�r�rrr� test_patch_multiple_new_callable�sz*PatchTest.test_patch_multiple_new_callablecCs�tj}tj}tjtdd�tjtdd�tjtdd�dd����}tjtdd�tjtdd�tjtdd�dd����}tjtdd�tjtdd�tjtdd�d	d
����}x:|||fD],}|jt|�|jtj|�|jtj|�q�WdS)Nr)r��missingr(cSsdS)Nrrrrr�thing1�sz3PatchTest.test_nested_patch_failure.<locals>.thing1cSsdS)Nrrrrr�thing2�sz3PatchTest.test_nested_patch_failure.<locals>.thing2cSsdS)Nrrrrr�thing3�sz3PatchTest.test_nested_patch_failure.<locals>.thing3)r%r(r)rr"r7rkrB)rrrr*r+r,�funcrrr�test_nested_patch_failure�sz#PatchTest.test_nested_patch_failurec	Cstj}tj}tj}dd�}tjtdd�tjtd|d�tjtdd�dd	����}tjtd|d�tjtdd�tjtdd�d
d����}tjtdd�tjtdd�tjtd|d�dd
����}xH|||fD]:}|jt|�|jtj|�|jtj|�|jtj|�q�WdS)NcSstd��dS)N�crasher)rzrrrrr/�sz4PatchTest.test_new_callable_failure.<locals>.crasherr)r�r,)r�r(cSsdS)Nrrrrrr*�sz3PatchTest.test_new_callable_failure.<locals>.thing1cSsdS)Nrrrrrr+�sz3PatchTest.test_new_callable_failure.<locals>.thing2cSsdS)Nrrrrrr,�sz3PatchTest.test_new_callable_failure.<locals>.thing3)	r%r(r)r,rr"r7rzrB)	rrrrr/r*r+r,r-rrr�test_new_callable_failure�s$z#PatchTest.test_new_callable_failurecCs�tj}tj}tjtdd�}d|_tjtdd�}d|_tjtdd�}d|_xR||g||gfD]>}||_|dd��}|jt|�|j	tj|�|j	tj|�qZWdS)Nr(r�r)r)cSsdS)Nrrrrrr-�sz3PatchTest.test_patch_multiple_failure.<locals>.func)
r%r(r)rr"rrr7rkrB)rrrr��good�bad�additionalsr-rrr�test_patch_multiple_failure�sz%PatchTest.test_patch_multiple_failurec
Cs�tj}tj}tj}dd�}tjtdd�}d|_tjtdd�}d|_tjtd|d�}d|_x`||g||gfD]L}||_|dd	��}	|jt	|	�|j
tj|�|j
tj|�|j
tj|�qjWdS)
NcSstd��dS)Nr/)rzrrrrr/�szCPatchTest.test_patch_multiple_new_callable_failure.<locals>.crasherr(r�r)r,)r�cSsdS)Nrrrrrr-
sz@PatchTest.test_patch_multiple_new_callable_failure.<locals>.func)r%r(r)r,rr"rrr7rzrB)
rrrrr/r�r1r2r3r-rrr�(test_patch_multiple_new_callable_failure�s"z2PatchTest.test_patch_multiple_new_callable_failurecsLtdtfddi�}|��tj�dd���fdd��}|��j�jd�dS)Nr%�fishZtastyznearly gone)r6cs�j�jd�dS)Nznearly gone)rBr6r)r,rrrrDsz=PatchTest.test_patch_multiple_string_subclasses.<locals>.test)r�strrrrBr6)rr%rDr)r,rr�%test_patch_multiple_string_subclassess
z/PatchTest.test_patch_multiple_string_subclasseszunittest.mock.patch.TEST_PREFIXr,cCslGdd�dt�}tj|dd�|�}|�}|j|j�d�|j|j�d�|j|j�d�|j|j�d�dS)Nc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)z-PatchTest.test_patch_test_prefix.<locals>.FoorNcSs|jS)N)r�)rrrr�foo_one$sz5PatchTest.test_patch_test_prefix.<locals>.Foo.foo_onecSs|jS)N)r�)rrrr�foo_two&sz5PatchTest.test_patch_test_prefix.<locals>.Foo.foo_twocSs|jS)N)r�)rrrrr(sz6PatchTest.test_patch_test_prefix.<locals>.Foo.test_onecSs|jS)N)r�)rrrrr*sz6PatchTest.test_patch_test_prefix.<locals>.Foo.test_twoN)rrrr�r9r:rrrrrrr%!s
r%r��changedrN)r"rrBr9r:rr)rr%r,rrr�test_patch_test_prefixsz PatchTest.test_patch_test_prefixr*cs�G�fdd�dt�}ddi�tj�dd�|�}|�}|j|j�ddi�|j|j�ddi�|j|j�ddi�|j|j�ddi�dS)Ncs<eZdZ�fdd�Z�fdd�Z�fdd�Z�fdd�Zd	S)
z2PatchTest.test_patch_dict_test_prefix.<locals>.Foocst��S)N)r�)r)�the_dictrr�bar_one9sz:PatchTest.test_patch_dict_test_prefix.<locals>.Foo.bar_onecst��S)N)r�)r)r=rr�bar_two;sz:PatchTest.test_patch_dict_test_prefix.<locals>.Foo.bar_twocst��S)N)r�)r)r=rrr=sz;PatchTest.test_patch_dict_test_prefix.<locals>.Foo.test_onecst��S)N)r�)r)r=rrr?sz;PatchTest.test_patch_dict_test_prefix.<locals>.Foo.test_twoN)rrrr>r?rrr)r=rrr%8sr%�keyrNr;)r@)r"rr�rBr>r?rr)rr%r,r)r=r�test_patch_dict_test_prefix6s
z%PatchTest.test_patch_dict_test_prefixcCs�x�d
D]x}tdtf|di�}|j�}zL|jdt|��|jdt|j��|jdt|���|jd	t|�j��Wd|j�XqWdS)Nrgr�r�z%s.SomeClassTz name='SomeClass'z! name='SomeClass.class_attribute'z name='SomeClass()'z# name='SomeClass().class_attribute')rgr�r�)rrr�r�r�r\r�)rr�rr�rrr�test_patch_with_spec_mock_reprLs
z(PatchTest.test_patch_with_spec_mock_reprcCsJtddd��4}|jdt|jj���|jdt|j�j���WdQRXdS)Nzunittest.test.testmock.supportT)r�z" name='support.SomeClass.wibble()'z$ name='support.SomeClass().wibble()')rr�r�rrj)rr�rrr�test_patch_nested_autospec_repr[s
z)PatchTest.test_patch_nested_autospec_reprcCs�x�dD]�}tdtf|di�}|j�}z�|j�tj�g}|j|j|�|j|j|�|j|jjt�g�|�}|jt��|j|j|�|j�|jt�j��|j|j|�|j|jtj�g�|j|jjt�g�|j|jtj�g�Wd|j	�XqWdS)Nrgr�r�z%s.SomeClassT)rgr�r�)
rrr�rjrrBZ
mock_callsZmethod_calls�appendr�)rr�rr�Zkallsr�rrr�test_mock_calls_with_patchds&
z$PatchTest.test_mock_calls_with_patchc
Csptd�}|jt|j�td��:t�}|tjd<d|_td�}d|_|j�|j	�WdQRX|j
|jd�dS)Nz
squizz.squozz�squizz�r�)rr7�ImportErrorr�rr
r�r�Zsquozzr�rB)rZp1rFrrr�test_patch_imports_lazilys

z#PatchTest.test_patch_imports_lazilyc
s�Gdd�d��G�fdd�dt���fdd�}|d�dd	��}td
��"t�}|tjd
<|jt|�WdQRX|j�jdt�|j	�jdd
�|j	�jdd�dS)Nc@seZdZdZdS)z<PatchTest.test_patch_propogrates_exc_on_exit.<locals>.holderN)NNN)rrrr�rrrr�holder�srJcseZdZd�fdd�	ZeZdS)zBPatchTest.test_patch_propogrates_exc_on_exit.<locals>.custom_patchNcs tj||||�|||f�_dS)N)r
�__exit__r�)r�etype�val�tb)rJrrrK�szKPatchTest.test_patch_propogrates_exc_on_exit.<locals>.custom_patch.__exit__)NNN)rrrrKr�r)rJrr�custom_patch�srOc
s$t|�\}}�||tdddddi�	S)NF)rr)�target�getterr?)rOrr�with_custom_patch�szGPatchTest.test_patch_propogrates_exc_on_exit.<locals>.with_custom_patchz
squizz.squozzcSst�dS)N)r�)rZrrrrD�sz:PatchTest.test_patch_propogrates_exc_on_exit.<locals>.testrFrr�zexception value not propgatedr�z!exception traceback not propgated)
r
rr
r�r�r7r�r�r�ZassertIsNotNone)rrRrDrFr)rOrJr�"test_patch_propogrates_exc_on_exit�s

z,PatchTest.test_patch_propogrates_exc_on_exitcCstxnd	D]f}tdtfddi|di��}|jt|j�|jtdd��ttfddi|di��}|j�|j�qWdS)
Nrgr�r�z%s.doesnotexistrwTcSstS)N)�doesnotexistrrrrri�sz1PatchTest.test_create_and_specs.<locals>.<lambda>)rgr�r�)rrr7r8r�rz�MODNAMEr�)r�kwargrrrr�test_create_and_specs�s
zPatchTest.test_create_and_specscCs�t}x>dD]6}ttfddi|di��}|jt|j�|jt|�q
Wx>dD]6}ttfddi|di��}|jt|j�|jt|�qJWx>dD]6}ttfddi|di��}|jt|j�|jt|�q�WdS)Nrgr�r�r)rgr�)rgr�)r�r�)rPrrUr7r8r�r�)rrNrVrrrr�test_multiple_specs�s


zPatchTest.test_multiple_specsc
Cs8ttdddd�}|j�}z|jd|_Wd|j�XdS)NF)rgr�r�r�)rrUr�Zdoes_not_existr�)rrrZrrr� test_specs_false_instead_of_none�s
z*PatchTest.test_specs_false_instead_of_nonecCsJxDdD]<}ttf|di�}|j�}z|jtt|d�Wd|j�XqWdS)Nrgr�r�rZdoesnotexit)rgr�r�)rrUr�r7rkrr�)rrVrr�rrr�test_falsey_spec�s
zPatchTest.test_falsey_specc
Csdx^dD]V}ttfddi|di��}|j�}z&|jtt|dd�|jtt|d�Wd|j�XqWdS)Nrgr�r�TrTrL)rgr�)rrUr�r7rkrrr�)rrVrr�rrr�test_spec_set_true�s

zPatchTest.test_spec_set_truec
Cs:d}tt|d�}|j�}z|jt|��Wd|j�XdS)N�__call__)rg)r\)rrUr�r9�callabler�)rrgrr�rrr�test_callable_spec_as_list�sz$PatchTest.test_callable_spec_as_listc
Cs:d}tt|d�}|j�}z|jt|��Wd|j�XdS)Nr,r*)rg)r,r*)rrUr�r:r]r�)rrgrr�rrr�test_not_callable_spec_as_list�sz(PatchTest.test_not_callable_spec_as_listcs^tj�tj�tj}tdt�j�tdt�j�td����fdd��}|��jtj|�dS)Nz	os.unlinkzos.chdirzos.pathcs6tj��jtj|��jtj���jtj��dS)N)r�stopallr�r��path�unlink�chdir)Z	mock_path)rcrrbrr�patchedsz-PatchTest.test_patch_stopall.<locals>.patched)	r�rbrcrarrLr�rQr�)rrardr)rcrrbr�test_patch_stopallszPatchTest.test_patch_stopallcsRg�Gdd�dt����fdd���fdd�d
D�tj�|j�d	ddg�dS)Nc@seZdZdZZZdS)z*PatchTest.test_stopall_lifo.<locals>.thingN)rrr�one�two�threerrrrr�sr�c
s8G���fdd�dt����fdd��ddddddi�	S)Ncs"eZdZ����fdd�Z�ZS)z?PatchTest.test_stopall_lifo.<locals>.get_patch.<locals>.mypatchcs�j��t�|�j�S)N)rD�superr�)r)�	__class__r?�mypatch�stoppedrrr�s
zDPatchTest.test_stopall_lifo.<locals>.get_patch.<locals>.mypatch.stop)rrrr��
__classcell__r)r?rkrl)rjrrksrkcs�S)Nrr)r�rrrisz@PatchTest.test_stopall_lifo.<locals>.get_patch.<locals>.<lambda>F)r
)r?)rlr�)r?rkr�	get_patchsz.PatchTest.test_stopall_lifo.<locals>.get_patchcsg|]}�|�j��qSr)r�)�.0rM)rnrr�
<listcomp>!sz/PatchTest.test_stopall_lifo.<locals>.<listcomp>rfrgrh)rfrgrh)r"rr`rB)rr)rnrlr�r�test_stopall_lifoszPatchTest.test_stopall_lifoc&Cs>ddd�}tj|dd��|j|�d�WdQRX|j|�d�tj|dd��|j|jd�WdQRX|j|jd�tj|d	d
��|j|jd
�WdQRX|j|jd�tj|dtdg���|j|jtdg��WdQRX|j|jt��dd�dd�}tj|dtdg���|j|�d�WdQRX|j|�d�dS)NrcSs|S)�TESTr)r	rrrr,(sz)PatchTest.test_special_attrs.<locals>.foo�__defaults__r��__doc__ZFUNrrrZ
testpatch2z unittest.test.testmock.testpatch�__annotations__�s)r	cWs|S)Nr)r	r&rrrr,;s�__kwdefaults__r	)r)r�)rvr�)rvr�)r	r�)rr"rBrtrr�ru)rr,rrr�test_special_attrs's"
zPatchTest.test_special_attrsN)T)errrr=rErGrKrOr[r^rfrmrorprqrrrsrtrvr{r}rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr
rrrrrrr r"r#r%r&r(r.r0r4r5r8rr<rArBrCrErIrSrWrXrYrZr[r^r_rerqrxrrrrr6Ss�



+*

		
!
+	



G	




+!!	"



r6�__main__)T)(r�r�r�Zunittest.test.testmockrZunittest.test.testmock.supportrrZtest.test_importlib.utilrZ
unittest.mockrrrr	r
rrr
rrrrXr�rrPrUr$r@rLrRrQr"r%r�r.r/ZTestCaser6�mainrrrr�<module>s@4


{

Youez - 2016 - github.com/yon3zu
LinuXploit