shell bypass 403
o
abE� � @ sN d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlm Z d dl
mZ d dlm
Z
zd dlZW n eyC dZY nw ze j W n eyT dZY nw dZzd dlZW n eyh dZY nw dZd d
� Zdd� Zd
d� ZG dd� dej�ZG dd� de�ZG dd� dejej�ZG dd� de�Zedkr�e�� dS dS )� N)� os_helper)�
TestFailed)�FakePath)�test_genericpath)�
TemporaryFileFTc C sn t jddd�j}t jt jt jg|_t j|_|| d d�}|s&td�t � � ���t �
|�}|| ||�}|d |� S )NZkernel32T)Zuse_last_errorr z&failed to get short path name 0x{:08X})�ctypesZWinDLLZGetShortPathNameWZ c_wchar_pZc_uint32�argtypesZrestype�OSError�formatZget_last_errorZcreate_unicode_buffer)�pathZGSPNZ
result_len�result� r
�9/usr/local/python-3.10/lib/python3.10/test/test_ntpath.py�_getshortpathname! s
�
r c C sB t | tttjf�rt�t�| ��S t| d�rt dd� | D ��S | S )N�__iter__c s s � | ]}t �t�|��V qd S �N)�ntpath�normcase�os�fsdecode��.0�pr
r
r � <genexpr>1 s � z_norm.<locals>.<genexpr>)
�
isinstance�bytes�strr �PathLiker r r �hasattr�tuple)r r
r
r �_norm- s
r c C s" | � dd�} t| �}||kr%t|�t|�kr%tdt| �t|�t|�f ��| � dd�} | � dd�} | � dd �} | � d
d�} | � dd
�} | � dd�} t�| ��d�} | �dd��d�} t �
� � t �dt� t| �}W d � n1 ssw Y t|�t|�kr�tdt| �t|�t
|�f ��d S )N�\�\\z%%s should return: %s but returned: %sz('z(b'z("z(b"z['z[b'z["z[b"z, 'z, b'z, "z, b"�latin1�ascii�backslashreplace�ignore)�replace�evalr r r r �fsencode�decode�encode�warnings�catch_warnings�simplefilter�DeprecationWarning�repr)�fnZ
wantResultZ gotResultr
r
r �tester5 s. �
���r2 c @ s e Zd Zdd� Zdd� ZdS )�NtpathTestCasec C s, ||kst |�t |�krd S | �||� d S r )r �assertEqual)�selfZpath1Zpath2r
r
r �assertPathEqualN s zNtpathTestCase.assertPathEqualc C s | � t|�t|�� d S r )ZassertInr )r5 r Zpathsetr
r
r �assertPathInS s zNtpathTestCase.assertPathInN)�__name__�
__module__�__qualname__r6 r7 r
r
r
r r3 M s r3 c @ s� e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zej
e�ed�dd� ��Zej
e�ed�dd� ��Zej
e�ed�dd� ��Zej
e�ed�dd� ��Zej
e�ed�dd� ��Zej
e�ed�dd� ��Zej
e�ed�d d!� ��Ze�ed�d"d#� �Ze�ed�e�ed$�d%d&� ��Zd'd(� Ze�ejd)�d*d+� �Zd,d-� Ze�ed.�d/d0� �Z d1d2� Z!d3d4� Z"d5d6� Z#d7d8� Z$d9d:� Z%e�ed;�d<d=� �Z&d>S )?�
TestNtpathc C sh t dd� t dd� t dd� t dd� t d d
� t dd� t d
d� t dd� t dd� t dd� d S )Nzntpath.splitext("foo.ext"))�foo�.extzntpath.splitext("/foo/foo.ext"))z/foo/foor= zntpath.splitext(".ext"))r= � zntpath.splitext("\foo.ext\foo"))z\foo.ext\foor>