
    /hh                     P    S r SSKJr   " S S5      r " S S5      r " S S5      rg	)
zqMock classes that imitate idlelib modules or classes.

Attributes and methods will be added as needed for tests.
    )Textc                   (    \ rS rSrSrSS jrS rSrg)Func   a2  Record call, capture args, return/raise result set by test.

When mock function is called, set or use attributes:
self.called - increment call number even if no args, kwds passed.
self.args - capture positional arguments.
self.kwds - capture keyword arguments.
self.result - return or raise value set in __init__.
self.return_self - return self instead, to mock query class return.

Most common use will probably be to mock instance methods.
Given class instance, can set and delete as instance attribute.
Mock_tk.Var and Mbox_func are special variants of this.
Nc                 F    SU l         Xl        X l        S U l        S U l        g )Nr   )calledresultreturn_selfargskwds)selfr	   r
   s      D/opt/python-3.13.8/usr/lib/python3.13/idlelib/idle_test/mock_idle.py__init__Func.__init__   s"    &		    c                     U =R                   S-  sl         Xl        X l        [        U R                  [
        5      (       a  U R                  eU R                  (       a  U $ U R                  $ )N   )r   r   r   
isinstancer	   BaseExceptionr
   )r   r   r   s      r   __call__Func.__call__   sM    q		dkk=11++K;;r   )r   r   r   r	   r
   )NF)__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes__ r   r   r   r      s    	r   r   c                   ,    \ rS rSrSr  SS jrS rSrg)Editor(   z1Minimally imitate editor.EditorWindow class.
    Nc                 R    U=(       d
    [        5       U l        [        5       U l        g N)r   textUndoDelegatorundo)r   flistfilenamekeyrootr$   s         r   r   Editor.__init__+   s    NDF	!O	r   c                 t    U R                   R                  S5      nU R                   R                  S5      nX4$ )Nz1.0end)r$   index)r   firstlasts      r   get_selection_indicesEditor.get_selection_indices0   s.    		&yyu%{r   )r$   r&   )NNNNN)r   r   r   r   r   r   r1   r   r   r   r   r    r    (   s    AE$
r   r    c                   $    \ rS rSrSrS rS rSrg)r%   6   z0Minimally imitate undo.UndoDelegator class.
    c                      g r#   r   r   s    r   undo_block_startUndoDelegator.undo_block_start:       r   c                      g r#   r   r6   s    r   undo_block_stopUndoDelegator.undo_block_stop<   r9   r   r   N)r   r   r   r   r   r7   r;   r   r   r   r   r%   r%   6   s    r   r%   N)r   idlelib.idle_test.mock_tkr   r   r    r%   r   r   r   <module>r>      s.   
 + @  r   