← Back
Editing: monkey.cpython-38.pyc
U W[� � @ s$ d dl mZmZ G dd� de�ZdS )� )�division�absolute_importc @ s@ e Zd ZdZdd� Zdd� Zdd� Zdd � Zd d� Zdd � Z dS )� MonkeyPatcherzn Cover up attributes with new objects. Neat for monkey-patching things for unit-testing purposes. c G s$ g | _ g | _|D ]}| j|� qd S )N)�_patchesToApply� _originals�addPatch)�selfZpatches�patch� r �7/usr/lib/python3/dist-packages/twisted/python/monkey.py�__init__ s zMonkeyPatcher.__init__c C s | j �|||f� dS )z� Add a patch so that the attribute C{name} on C{obj} will be assigned to C{value} when C{patch} is called or during C{runWithPatches}. You can restore the original values with a call to restore(). N)r �append�r �obj�name�valuer r r r s zMonkeyPatcher.addPatchc C s, | j D ] \}}}||f||fkr dS qdS )zc Has the C{name} attribute of C{obj} already been patched by this patcher? TF)r )r r r �o�n�vr r r �_alreadyPatched# s zMonkeyPatcher._alreadyPatchedc C sF | j D ]:\}}}| �||�s4| j�||t||�f� t|||� qdS )z� Apply all of the patches that have been specified with L{addPatch}. Reverse this operation using L{restore}. N)r r r r �getattr�setattrr r r r r . s zMonkeyPatcher.patchc C s( | j r$| j �� \}}}t|||� q dS )zE Restore all original values to any patched objects. N)r �popr r r r r �restore9 s zMonkeyPatcher.restorec O s&