Format: application/x-python-code
⬇ Download File (8.2 KB)
   1  o
   2  
   3  ��h�"�@s�dZddlmZmZddlmZmZddlmZddl	m
   4  Z
   5  ddlZddlm
   6  Z
   7  ddlmZer9dd	lmZe�Zd
   8  d�Zdd
   9  �ZGdd�de
  10  �ZdS)zY
  11  Test for async helpers.
  12  
  13  Should only trigger on python 3.5+ or will have syntax errors.
  14  �)�chain�repeat)�dedent�indent)�
  15  TYPE_CHECKING)�TestCaseN)�_should_be_async)�skip_without)�get_ipythoncCst�t|����S�N)�ip�run_cellr�raise_error��x�r�[c:\Users\shubh\Videos\agent\nova\Lib\site-packages\IPython/core/tests/test_async_helpers.py�iprcsrcCst�t|��Sr)rr
  16  rrrrr�iprc_nrsrc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
  17  �Zdd�Zd
  18  d�Z	dd�Z
  19  dd�Zej
  20  jdd�ej
  21  jdd�dd���Zed�dd��Zed�dd��Zed�dd��Zdd �Zd!S)"�	AsyncTestcCs@|�td��|�td��|�td��|�ttd���dS)N�Falsezawait bar()zx = await bar()zA
  22              async def awaitable():
  23                  pass
  24          )ZassertFalser�
  25  assertTruer��selfrrr�test_should_be_asyncs���zAsyncTest.test_should_be_asynccCs�g}|�d�|�dtd�f�|�dtd�f�|�dtd�f�|�dtd	�f�|�d
  26  td�f�|�dtd
  27  �f�|�dtd�f�|�dtd�f�|S)N)�basicz{val}�ifz,
  28          if True:
  29              {val}
  30          �whilezA
  31          while True:
  32              {val}
  33              break
  34          �tryzI
  35          try:
  36              {val}
  37          except:
  38              pass
  39          �exceptzI
  40          try:
  41              pass
  42          except:
  43              {val}
  44          �finallyzk
  45          try:
  46              pass
  47          except:
  48              pass
  49          finally:
  50              {val}
  51          �forz6
  52          for _ in range(4):
  53              {val}
  54          �nestedz^
  55          if True:
  56              while True:
  57                  {val}
  58                  break
  59          zdeep-nesteda
  60          if True:
  61              while True:
  62                  break
  63                  for x in range(3):
  64                      if True:
  65                          while True:
  66                              for x in range(3):
  67                                  {val}
  68          ��appendr�rZ
  69  test_casesrrr�_get_top_level_cases.s
  70  	zAsyncTest._get_top_level_casescCs,g}|�dtd�f�|�dtd�f�|S)N�classz,
  71          class V:
  72              {val}
  73          znested-classzE
  74          class V:
  75              class C:
  76                  {val}
  77          r#r%rrr�_get_ry_syntax_errorsszAsyncTest._get_ry_syntax_errorscCs�|��}|�|���dddtd�f}|D]d\}}|�|df��t|jdd��Wd�n1s3wY|D]>}|�||f��-d||f}|jt|d��t|j|d��Wd�n1sdwYWd�n1sswYq:qdS)	N�return�yield� yield from (_ for _ in range(3))zj
  78                      def f():
  79                          pass
  80                      return
  81                      �pass��valz"Syntax error not raised for %s, %s��msg)	r&�extendr(r�subTestr�format�assertRaises�SyntaxError)rZtl_err_test_cases�vals�	test_name�	test_caser.r0rrr�test_top_level_return_error�s(��������z%AsyncTest.test_top_level_return_errorcCstg}|�ddtd�f�|�ddtd�f�|�ddtd�f�|�d	dtd
  82  �f�|�ddtd�f�d
  83  d�}d}t|��td��}t|��td��}t||�}|D]d\}}}	|D]\\\}
  84  }}||	|�}
  85  |D]N}||
  86  |f}|
  87  j|d�}|�|��4|r�dt	|�}|j
  88  t|d��t|�t
  89  |�Wd�n1s�wYnt|�Wd�n1s�wYqgqZqSdS)N�funcFz
  90          def f():�methodz@
  91          class MyClass:
  92              def __init__(self):
  93          z
  94  async-funcTz
  95          async def f():zasync-methodz6
  96          class MyClass:
  97              async def f(self):�closurez/
  98          def f():
  99              def g():
 100          cSsP|����}d}|dD]}|dkrn|d7}qt|d|d�}|d|S)Nr������ ���
 101  )�strip�
 102  splitlinesr)�context�case�lines�
 103  prefix_len�cZ
 104  indented_caserrr�	nest_case�s
 105  z2AsyncTest.test_in_func_no_error.<locals>.nest_case)r)r*r+r-zSyntaxError not raised for %sr/)r$r�zipr&rr(rr3r2�strr4r5r�print)rZ
 106  func_contextsrIr6Z
 107  success_tests�
 108  failure_tests�testsZcontext_nameZ
 109  async_funcrDr7r8Zshould_failZnested_caser.Ztest_id�cellr0rrr�test_in_func_no_error�sD
 110  
 111  
 112  �
 113  ��������zAsyncTest.test_in_func_no_errorcCsN|�t��td�td�td�Wd�n1swYtd�dS)Nz
 114  nonlocal xz�
 115              x = 1
 116              def f():
 117                  nonlocal x
 118                  x = 10000
 119                  yield x
 120              z�
 121              def f():
 122                  def g():
 123                      nonlocal x
 124                      x = 10000
 125                      yield x
 126              z�
 127          def f():
 128              x = 20
 129              def g():
 130                  nonlocal x
 131                  x = 10000
 132                  yield x
 133          )r4r5rrrrr�
 134  test_nonlocal�s
 135  �zAsyncTest.test_nonlocalcC�td�dS)NzC
 136          import asyncio
 137          await asyncio.sleep(0.001)
 138          �rrrrr�test_executeszAsyncTest.test_executecCstd�td�td�dS)Nz%autoawait Falsez%autoawait TruezD
 139          from asyncio import sleep
 140          await sleep(0.1)
 141          rSrrrr�test_autoawaitszAsyncTest.test_autoawaitcCstd�dS)zl
 142          The pgen parser in 3.8 or before use to raise MemoryError on too many
 143          nested parens anymorea�(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))NrSrrrr�test_memory_errorszAsyncTest.test_memory_errorz+fail on curio 1.6 and before on Python 3.12)�reasonzRskip_without(curio) fails on 3.12 for now even with other skip so must uncond skipcCrR)Nz%autoawait curiorSrrrr�test_autoawait_curio#szAsyncTest.test_autoawait_curioZtriocCrR)N�%autoawait triorSrrrr�test_autoawait_trio+szAsyncTest.test_autoawait_triocC�Htd�td�}|�t��
 144  |��Wd�dS1swYdS)NrYz?
 145          import asyncio
 146          await asyncio.sleep(0)
 147          )rrr4�	TypeErrorr�r�resrrr�test_autoawait_trio_wrong_sleep/�
 148  
 149  "�z)AsyncTest.test_autoawait_trio_wrong_sleepcCr[)Nz%autoawait asyncioz9
 150          import trio
 151          await trio.sleep(0)
 152          )rrr4�RuntimeErrorrr]rrr�"test_autoawait_asyncio_wrong_sleep9r`z,AsyncTest.test_autoawait_asyncio_wrong_sleepcCs
 153  dt_dS)N�asyncio)rZloop_runnerrrrr�tearDownDs
 154  zAsyncTest.tearDownN)�__name__�
 155  __module__�__qualname__rr&r(r9rPrQrTrUrV�pytest�markZxfail�skiprXr	rZr_rbrdrrrrrs,QC	�
 156  
 157  	
 158  
 159  r)�__doc__�	itertoolsrr�textwraprr�typingrZunittestrrhZIPython.core.async_helpersrZIPython.testing.decoratorsr	ZIPythonr
 160  rrrrrrrr�<module>s