mirror of https://github.com/flaggo/pydu.git
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
import os
|
|
from tempfile import mkdtemp
|
|
|
|
from pydu.request import FileName, download
|
|
from pydu.file import remove
|
|
|
|
|
|
def test_filename_from_url():
|
|
url = 'http://www.example.com/test.txt'
|
|
assert FileName.from_url(url) == 'test.txt'
|
|
|
|
url = 'http://www.example.com/'
|
|
assert FileName.from_url(url) is None
|
|
|
|
|
|
def test_filename_from_headers():
|
|
headers = {'Content-Disposition': 'attachment; filename=test.txt'}
|
|
assert FileName.from_headers(headers) == 'test.txt'
|
|
|
|
headers = [('Content-Disposition', 'attachment; filename=test.txt')]
|
|
assert FileName.from_headers(headers) == 'test.txt'
|
|
|
|
headers = 'Content-Disposition: attachment; filename=test.txt'
|
|
assert FileName.from_headers(headers) == 'test.txt'
|
|
|
|
headers = 'Content-Disposition: attachment; filename=abc/test.txt'
|
|
assert FileName.from_headers(headers) == 'test.txt'
|
|
|
|
headers = ''
|
|
assert FileName.from_headers(headers) is None
|
|
|
|
headers = 'Content-Disposition: abc'
|
|
assert FileName.from_headers(headers) is None
|
|
|
|
headers = 'Content-Disposition: abc;'
|
|
assert FileName.from_headers(headers) is None
|
|
|
|
headers = 'Content-Disposition: attachment; filename=test.txt; filename=test2.txt'
|
|
assert FileName.from_headers(headers) is None
|
|
|
|
headers = 'Content-Disposition: attachment; filename='
|
|
assert FileName.from_headers(headers) is None
|
|
|
|
|
|
def test_download():
|
|
file_url = 'https://www.cnblogs.com/images/logo_small.gif'
|
|
file_dir = mkdtemp()
|
|
file_path = download(file_url, file_dir)
|
|
assert os.path.exists(file_path)
|
|
remove(file_dir)
|