
    daf                         d Z ddlmZ ddlmZ ddlZddlZ G d dej                        Zd Z	e
dk(  r ej                          yy)	zDVerify that warnings are issued for global statements following use.    check_syntax_error)check_warningsNc                   *    e Zd Zd Zd Zd Zd Zd Zy)GlobalTestsc                 d    | j                  t                      t        j                  dd       y Nerror<test string>)module)enterContextr   warningsfilterwarnings)selfs    +/root/Python-3.12.4/Lib/test/test_global.pysetUpzGlobalTests.setUp   s#    .*+@    c                 &    d}t        | |dd       y )Nz<def wrong1():
    a = 1
    b = 2
    global a
    global b
      linenooffsetr   )r   prog_text_1s     r   test1zGlobalTests.test1   s     	4QqAr   c                 &    d}t        | |dd       y )Nz(def wrong2():
    print(x)
    global x
   r   r   r   )r   prog_text_2s     r   test2zGlobalTests.test2   s    
 	4QqAr   c                 &    d}t        | |dd       y )Nz2def wrong3():
    print(x)
    x = 2
    global x
r   r   r   r   )r   prog_text_3s     r   test3zGlobalTests.test3!   s     	4QqAr   c                 "    d}t        |dd       y )Nzglobal x
x = 2
r   exec)compile)r   prog_text_4s     r   test4zGlobalTests.test4*   s    
 	_f5r   N)__name__
__module____qualname__r   r   r   r"   r'    r   r   r   r   	   s    ABBB6r   r   c                      t        j                  t        j                                t        j                  dd       y r	   )unittestenterModuleContextr   catch_warningsr   r+   r   r   setUpModuler0   3   s)     7 7 9:GO<r   __main__)__doc__test.supportr   test.support.warnings_helperr   r-   r   TestCaser   r0   r(   mainr+   r   r   <module>r7      sF    J + 7  '6(## '6T=
 zHMMO r   