Sindbad~EG File Manager
�
'Μg�� � �( � d Z ddlZddlZddlZddlZddlZddlZddlZddlZ ddl Z ddlmZmZ ddl
mZ ddlmZ ddlmZ ddlmZ ddlmZ dd lmZ dd
lmZmZ ej0 d�� ej2 Zd
Zddz ZdZdZdZd� Z G d� dejB � Z" G d� dejB � Z# G d� dejH ejJ � Z&e ��ejN jQ ejN jS e*� dd� Z+ejN jQ ejN jS e*� dd� Z, G d� dejH � Z- G d� de-e"� Z. G d � d!e-e#� Z/ G d"� d#e&� Z0 G d$� d%e� Z1 eejd d&� G d'� d(e� � Z3 ee d)� G d*� d+e1� � Z4 ee d)� G d,� d-e� � Z5 G d.� d/e� Z6 G d0� d1e� Z7d2� Z8e9d3k( r ejt � yy# e
$ r dZ Y ���w xY w)4zTest script for ftplib module.� N)�TestCase�
skipUnless)�support)�threading_helper)�
socket_helper)�warnings_helper)�asynchat)�asyncore)�HOST�HOSTv6T)�module�utf-8u abcde¹²³¤¦
i� u foo
bar
non-ascii char ®
u> type=cdir;perm=el;unique==keVO1+ZF4; test
type=pdir;perm=e;unique==keVO1+d?3; ..
type=OS.unix=slink:/foobar;perm=;unique==keVO1+4G4; foobar
type=OS.unix=chr-13/29;perm=;unique==keVO1+5G4; device
type=OS.unix=blk-11/108;perm=;unique==keVO1+6G4; block
type=file;perm=awr;unique==keVO1+8G4; writable
type=dir;perm=cpmel;unique==keVO1+7G4; promiscuous
type=dir;perm=;unique==keVO1+1t2; no-exec
type=file;perm=r;unique==keVO1+EG4; two words
type=file;perm=r;unique==keVO1+IH4; leading space
type=file;perm=r;unique==keVO1+1G4; file1
type=dir;perm=cpmel;unique==keVO1+7G4; incoming
type=file;perm=r;unique==keVO1+1G4; file2
type=file;perm=r;unique==keVO1+1G4; file3
type=file;perm=r;unique==keVO1+1G4; file4
type=dir;perm=cpmel;unique==SGP1; dir ® non-ascii char
type=file;perm=r;unique==SGP2; file ® non-ascii char
c � � y �N� r � �-/usr/local/lib/python3.12/test/test_ftplib.py�default_error_handlerr 9 s � � r c �: � � e Zd ZdZd� Zd� Zd� Z� fd�Zd� Z� xZ S )�DummyDTPHandlerFc � � t j j | |� || _ t � | j _ |j | _ y r )r �
async_chat�__init__� baseclass� bytearray�last_received_data�encoding��self�connr s r r zDummyDTPHandler.__init__C s: � ����$�$�T�4�0�"���,5�K����)�!�*�*��
r c �d � | j d� }| j xj |z
c_ y )N� )�recvr r )r �new_datas r �handle_readzDummyDTPHandler.handle_readI s$ � ��9�9�T�?�����)�)�X�5�)r c � � | j s3| j j d� | j � d| _ y y )N�226 transfer completeT)�dtp_conn_closedr �push�close�r s r �handle_closezDummyDTPHandler.handle_closeM s6 � � �#�#��N�N��� 7�8��J�J�L�#'�D� � $r c � �� | j j �'| j j }d | j _ |s| j � S t t | � |j
| j � � y r )r � next_data�close_when_done�superr r) �encoder )r �what� __class__s �r r) zDummyDTPHandler.pushV s\ �� ��>�>�#�#�/��>�>�+�+�D�'+�D�N�N�$���'�'�)�)�
�o�t�)�$�+�+�d�m�m�*D�Er c � � t � y r �r r+ s r �handle_errorzDummyDTPHandler.handle_error^ � � ��r )
�__name__�
__module__�__qualname__r( r r% r, r) r6 �
__classcell__�r3 s @r r r @ s"