File: //opt/cppython/lib/python3.8/test/__pycache__/test_positional_only_arg.cpython-38.pyc
U
.D�g�E � @ sp d Z ddlZddlZddlZddlmZ dd� Zdd� Zdd
d�Zdd
� Z G dd� dej
�Zedkrle�
� dS )zHUnit tests for the positional only argument syntax specified in PEP 570.� N��check_syntax_errorc C s | |fS �N� ��a�br r �</opt/cppython/lib/python3.8/test/test_positional_only_arg.py�global_pos_only_f
s r
c C s | |fS r r r r r r �global_pos_only_and_normal
s r � � c C s | |fS r r r r r r �global_pos_only_defaults s r c C s t d�dd�} | S )N��xc S s d S r r r r r r �f � z$global_inner_has_pos_only.<locals>.f��int�r r r r �global_inner_has_pos_only s r c @ s� e Zd Zd>dd�Zdd� Zdd� Zdd � Zd
d� Zdd
� Zdd� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d'� Zd/d0� Zd1d2� Zd3d4� Zd5d6� Zd7d8� Zd9d:� Zd;d<� Zd=S )?�PositionalOnlyTestCase�invalid syntaxc C s, | � t|�� t|d dd� W 5 Q R X d S )N�
�<test>�single)�assertRaisesRegex�SyntaxError�compile)�selfZcodestrZregexr r r �assertRaisesSyntaxError s z.PositionalOnlyTestCase.assertRaisesSyntaxErrorc C s� t | dd� t | dd� t | dd� t | dd� t | d� t | d� t | d� t | d � t | d
� t | d� t | d� t | d
� t | dd� t | dd� t | d� t | d� t | d� t | d� t | d� d S )Nzdef f(a, b = 5, /, c): pass�-non-default argument follows default argumentzdef f(a = 5, b, /, c): passz%def f(a = 5, b=1, /, c, *, d=2): passzdef f(a = 5, b, /): passzdef f(*args, /): passzdef f(*args, a, /): passzdef f(**kwargs, /): passzdef f(/, a = 1): passzdef f(/, a): passzdef f(/): passzdef f(*, a, /): passzdef f(*, /, a): passzdef f(a, /, a): pass�-duplicate argument 'a' in function definitionzdef f(a, /, *, a): passzdef f(a, b/2, c): passzdef f(a, /, c, /): passzdef f(a, /, c, /, d): passz def f(a, /, c, /, d, *, e): passzdef f(a, *, c, /, d, e): passr �r r r r �test_invalid_syntax_errors s&