a
    ҏi                     @   sL   d dl m Z  ddlmZ G dd de Zdd Zdd	 ZG d
d deZdS )    )greenlet   )TestCasec                   @   s4   e Zd ZdZdd Zdd Zdd Zdd	 ZeZdS )
genletNc                 O   s   || _ || _d S N)argskwds)selfr   r    r
   M/home/Claro/venv/lib/python3.9/site-packages/greenlet/tests/test_generator.py__init__   s    zgenlet.__init__c                 C   s   | j \}|| ji | j d S r   )fnr   r   )r	   r   r
   r
   r   run   s    z
genlet.runc                 C   s   | S r   r
   )r	   r
   r
   r   __iter__   s    zgenlet.__iter__c                 C   s"   t  | _|  }| r|S td S r   )r   
getcurrentparentswitchStopIteration)r	   resultr
   r
   r   __next__   s
    
zgenlet.__next__)	__name__
__module____qualname__r   r   r   r   r   nextr
   r
   r
   r   r      s   r   c                 C   s:   t  }t|ts*|d u r"td|j}q|j|  d S )Nzyield outside a genlet)r   r   
isinstancer   RuntimeErrorr   r   )valuegr
   r
   r   Yield   s    
r   c                    s   G  fdddt }|S )Nc                       s   e Zd Z fZdS )zgenerator.<locals>.GeneratorN)r   r   r   r   r
   funcr
   r   	Generator(   s   r!   )r   )r    r!   r
   r   r   	generator'   s    r"   c                   @   s   e Zd Zdd ZdS )GeneratorTestsc                    sV   g   fdd}t |}tdD ]}|dD ]} | q,q |  dg d  d S )Nc                    s$   t | D ]} | t| qd S r   )rangeappendr   )niseenr
   r   r   3   s    
z(GeneratorTests.test_generator.<locals>.g      )
r   r   r   r      r,   r*   r*      r-   )r"   r$   r%   assertEqual)r	   r   _jr
   r(   r   test_generator0   s    zGeneratorTests.test_generatorN)r   r   r   r1   r
   r
   r
   r   r#   /   s   r#   N)r    r   r   r   r"   r#   r
   r
   r
   r   <module>   s
   	