Sindbad~EG File Manager
a
��gR� � @ sH d dl Z d dlZd dlmZ G dd� dej�Zdd� ZedkrDe� dS )� N)�supportc @ s� e Zd Zd4dd�Zdd� Zdd � Ze�e� � d
�dd� �Z
d
d� Zdd� Zdd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zejd(d)� �Zd*d+� Zd,d-� Zd.d/� Zejd0d1� �Zejd2d3� �ZdS )5�SyntaxTestCase�
<testcase>�execNc
C s� zt |||� W n� ty� } z�|r>t||�s>| �d|j � t�|t|��} | d u rf| �d|f � | �|j |� |d ur�| �|j
|� |d ur�| �|j|� W Y d }~nd }~0 0 | �d� d S )NzSyntaxError is not a %szSyntaxError did not contain %rz#compile() did not raise SyntaxError)�compile�SyntaxError�
isinstance�fail�__name__�re�search�strZassertEqual�filename�lineno�offset)
�self�codeZerrtextr �mode�subclassr r �err�mo� r �,/usr/local/lib/python3.9/test/test_syntax.py�_check_error� s $zSyntaxTestCase._check_errorc C s | j dddd� d S )Nzf{�invalid syntax�single�r �r �r r r r �1test_curly_brace_after_primary_raises_immediately s z@SyntaxTestCase.test_curly_brace_after_primary_raises_immediatelyc C s | � dd� d S )Nzf() = 1Zassignr r r r r �test_assign_call s zSyntaxTestCase.test_assign_callz3The old parser cannot generate these error messagesc C sH | � dd� | � dd� | � dd� | � dd� | � dd � | � d
d� | � dd � | � d
d � | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � dd� | � d d� | � d!d� | � d"d#� | � d$d� d S )%Nzdel (,)r zdel 1zdelete literalz
del (1, 2)zdel Nonezdelete Nonezdel *xzdelete starredzdel (*x)zuse starred expressionz del (*x,)z del [*x,]zdel f()zdelete function callzdel f(a, b)z del o.f()z
del a[0]()z
del x, f()z
del f(), xzdel [a, b, ((c), (d,), e.f())]zdel (a if True else b)zdelete conditionalzdel +azdelete operatorz del a, +bz del a + bzdel (a + b, c)zdel (c[0], a + b)z
del a.b.c + 2zdel a.b.c[0] + 2zdel (a, b, (c, d.e.f + 2))zdel [a, b, (c, d.e.f[0] + 2)]zdel (a := 5)zdelete named expressionz
del a += br r r r r �test_assign_del s6 zSyntaxTestCase.test_assign_delc C s d}| j |ddd� d S )Nz�if 1:
def error(a):
global a # SyntaxError
def error2():
b = 1
global b # SyntaxError
zparameter and global� �r r �r �sourcer r r �test_global_param_err_first4 s z*SyntaxTestCase.test_global_param_err_firstc C s d}| j |ddd� d S )Nz�if 1:
def error(a):
nonlocal a # SyntaxError
def error2():
b = 1
global b # SyntaxError
zparameter and nonlocalr"