Your IP : 216.73.216.213
�
�0�i� � � � d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZmZm Z m
Z
d dlmZ d dlm
Z
d dlmZ d dlmZ d dlmZ d d lmZ d dlZn
# e$ r dZY nw xY w eej � � Zd
� Zd� Zd� Z G d
� dej � � Z G d� de
j ej � � Z G d� dej � � Ze dk r ej! � � dS dS )� N)�partial)�realpath�abspath�dirname�basename�
ALLOW_MISSING)�support)�test_genericpath)�
import_helper)� os_helper)�FakePath)�mockc �b � dt v }d}| t j |� � | � � g| S )z�
On Windows, posixpath.abspath still returns paths with backslashes
instead of posix forward slashes. If this is the case, several tests
fail, so skip them.
�\z'ABSTFN is not a posix path - tests fail)�ABSTFN�unittest�skip)�test�found_backslash�msgs �:/opt/alt/python311/lib64/python3.11/test/test_posixpath.py�!skip_if_ABSTFN_contains_backslashr s7 � � �f�n�O�
3�C��$�(�-��$�$�T�*�*�+�O�<�<� c �R � t j | � � d S # t $ r Y d S w xY w�N)�os�rmdir�OSError)r s r �
safe_rmdirr # s? � �
�
����������
�
�
����
���s � �
&�&c � � � � fd�}|S )a{ Simplistic decorator to parametrize a test
Runs the decorated test multiple times in subTest, with a value from
'parameters' passed as an extra positional argument.
Does *not* call doCleanups() after each run.
Not for general use. Intended to avoid indenting for easier backports.
See https://discuss.python.org/t/91827 for discussing generalizations.
c � �� � � �fd�}|S )Nc � �� �D ]=}| � |� � 5 �| g|�|�R i |�� d d d � � n# 1 swxY w Y �>d S r )�subTest)�self�args�kwargs� parameter�func�
parameterss ��r �_parameterizedzE_parameterize.<locals>._parametrize_decorator.<locals>._parameterized5 s� �� �'�
;�
;� ��\�\�)�,�,� ;� ;��D��:��:�i�:�:�:�6�:�:�:�;� ;� ;� ;� ;� ;� ;� ;� ;� ;� ;���� ;� ;� ;� ;��
;�
;s �6�: �: � )r( r* r) s ` �r �_parametrize_decoratorz-_parameterize.<locals>._parametrize_decorator4 s* ��� � ;� ;� ;� ;� ;� ;� �r r+ )r) r, s ` r �
_parameterizer- ) s$ �� �� � � � � "�!r c � � e Zd Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z
d � Zd
� Zd� Z
d� Zej d
� � � Z ej edu d� � d� � � Z ej edu d� � d� � � Zd� Zd� Z ej ej dk d� � d� � � Zg d�Zd� Ze ei ddide i� � d� � � � � Z!e ei ddide i� � d� � � � � Z"ej e ei de i� � d� � � � � � � Z#ej ed� � � � � Z$d� Z%ej e ei de i� � d � � � � � � � Z&ej e ei de i� � d!� � � � � � � Z'ej ed"� � � � � Z(ej e eddide i� � d#� � � � � � � Z)ej e ei ddide i� � d$� � � � � � � Z*ej e ei ddide i� � d%� � � � � � � Z+ej e ei de i� � d&� � � � � � � Z,ej e ei ddide i� � d'� � � � � � � Z-ej e ei ddide i� � d(� � � � � � � Z.ej e ej e/j0 e/j1 vd)� � ej ej d*k d+� � eddide i� � d,� � � � � � � � � � � Z2eej d-� � � � � Z3d.� Z4d/� Z5d0� Z6dS )1�
PosixPathTestc �. � | � � � d S r )�tearDown�r$ s r �setUpzPosixPathTest.setUp? s � ��
�
�����r c � � dD ]?}t j t j |z � � t t j |z � � �@d S )N)� �1�2)r �unlink�TESTFNr )r$ �suffixs r r1 zPosixPathTest.tearDownB sM � �$� 2� 2�F���Y�-��6�7�7�7��y�'�&�0�1�1�1�1� 2� 2r c � � | � t j dddd� � d� � | � t j ddd� � d� � | � t j ddd � � d
� � | � t j ddd
d� � d� � | � t j ddd� � d� � | � t j ddd� � d� � d S )N�/foo�bar�/bar�baz�/bar/bazz/foo/bar/bazz/foo/zbar/zbaz/z
/foo/bar/baz/� /foo� bars /bars bazs /bar/bazs /foo/bar/bazs /foo/s bar/s baz/s
/foo/bar/baz/)�assertEqual� posixpath�joinr2 s r � test_joinzPosixPathTest.test_joinG s
� ��������v�u�E�E�#� %� %� %��������u�=�=�~�N�N�N���������@�@�(� *� *� *�
��������&�I�I�$� &� &� &���������@�@�(� *� *� *�������'�7�C�C�)� +� +� +� +� +r c �& � | � t j d� � d� � | � t j d� � d� � | � t j d� � d� � | � t j d� � d� � | � t j d � � d
� � | � t j d� � d� � | � t j d
� � d� � | � t j d� � d� � | � t j d� � d� � | � t j d� � d� � d S )N�/foo/bar)r<