File: //usr/local/lib/python3.7/test/__pycache__/test_ftplib.cpython-37.opt-1.pyc
B
��g�� � @ s d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z yddl
Z
W n ek
rp dZ
Y nX ddlm
Z
mZ ddlmZ ddlmZmZ dZdd Zd Zd Zd
ZG dd� dej�ZG d
d� dej�ZG dd� dejej�Ze
dk �rlej� ej�!e"�d�Z#ej� ej�!e"�d�Z$G dd� dej�Z%G dd� de%e�Z&G dd� de%e�Z'G dd� de�Z(G dd� de
�Z)eej*d�G dd� de
��Z+ee
d �G d!d"� d"e)��Z,ee
d �G d#d$� d$e
��Z-G d%d&� d&e
�Z.G d'd(� d(e
�Z/d)d*� Z0e1d+k�re0� dS ),zTest script for ftplib module.� N)�TestCase�
skipUnless)�support)�HOST�HOSTv6� zabcde12345
i� z
foo
bar
a� 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
c s@ e Zd ZdZdd� Zdd� Zdd� Z� fdd �Zd
d� Z� Z S )�DummyDTPHandlerFc C s t j�| |� || _d| j_d S )N� )�asynchat�
async_chat�__init__� baseclass�last_received_data)�self�connr
� r �,/usr/local/lib/python3.7/test/test_ftplib.pyr 2 s zDummyDTPHandler.__init__c C s | j j| �d��d�7 _d S )Ni �ascii)r
r �recv�decode)r r r r �handle_read7 s zDummyDTPHandler.handle_readc C s$ | j s | j�d� | �� d| _ d S )Nz226 transfer completeT)�dtp_conn_closedr
�push�close)r r r r �handle_close: s zDummyDTPHandler.handle_closec sB | j jd k r| j j}d | j _|s(| �� S tt| ��|�d�� d S )Nr )r
� next_data�close_when_done�superr r �encode)r Zwhat)� __class__r r r C s zDummyDTPHandler.pushc C s t �d S )N)� Exception)r r r r �handle_errorK s zDummyDTPHandler.handle_error)
�__name__�
__module__�__qualname__r r r r r r! �
__classcell__r r )r r r / s r c @ s e Zd ZeZdd� Zdd� Zdd� Zdd� Zd d
� Z dd� Z
d
d� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd/d0� Zd1d2� Zd3d4� Zd5d6� Zd7d8� Z d9d:� Z!d;d<� Z"d=d>� Z#d?d@� Z$dAdB� Z%dCS )D�DummyFTPHandlerc C sp t j�| |� | j�tjtjd� | �d� g | _d | _ d | _
d| _d| _d | _
d | _t| _| �d� d| _d S )N� s
r z220 welcomez252.253.254.255)r
r r �socketZ
setsockoptZ
SOL_SOCKETZSO_OOBINLINEZset_terminator� in_buffer�dtp�last_received_cmdr �
next_responser �rest� RETR_DATA�next_retr_datar �fake_pasv_server_ip)r r r r r r S s
zDummyFTPHandler.__init__c C s | j �|� d S )N)r) �append)r �datar r r �collect_incoming_dataf s z%DummyFTPHandler.collect_incoming_datac C s� d� | j��d�}g | _| jr0| �| j� d| _|�d�d �� }|| _|�d�}|dkrl||d d � }nd}t | d| �r�t
| d| �}||� n| �d | � d S )
N� r r � r ���r'