linkchecker/tests/checker/test_ftp.py

108 lines
3.3 KiB
Python
Raw Normal View History

# Copyright (C) 2004-2012 Bastian Kleineidam
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
2009-07-24 21:58:20 +00:00
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
2010-03-09 06:42:56 +00:00
FTP checking.
"""
from .. import need_pyftpdlib
2010-03-09 06:42:56 +00:00
from .ftpserver import FtpServerTest
class TestFtp(FtpServerTest):
2010-03-09 06:42:56 +00:00
"""Test ftp: link checking."""
@need_pyftpdlib
def test_ftp (self):
2012-11-06 20:34:22 +00:00
# ftp two slashes
2020-04-30 19:11:59 +00:00
url = "ftp://%s:%d/" % (self.host, self.port)
2012-11-06 20:34:22 +00:00
resultlines = [
2020-04-30 19:11:59 +00:00
"url %s" % url,
"cache key %s" % url,
"real url %s" % url,
"valid",
2012-11-06 20:34:22 +00:00
]
# ftp use/password
user = "anonymous"
passwd = "Ftp"
2020-04-30 19:11:59 +00:00
url = "ftp://%s:%s@%s:%d/" % (user, passwd, self.host, self.port)
2012-11-06 20:34:22 +00:00
resultlines = [
2020-04-30 19:11:59 +00:00
"url %s" % url,
"cache key %s" % url,
"real url %s" % url,
"valid",
2012-11-06 20:34:22 +00:00
]
self.direct(url, resultlines)
# ftp one slash
2020-04-30 19:11:59 +00:00
url = "ftp:/%s:%d/" % (self.host, self.port)
2012-11-06 20:34:22 +00:00
nurl = self.norm(url)
resultlines = [
2020-04-30 19:11:59 +00:00
"url %s" % url,
"cache key None",
"real url %s" % nurl,
"error",
2012-11-06 20:34:22 +00:00
]
self.direct(url, resultlines)
# missing path
2020-04-30 19:11:59 +00:00
url = "ftp://%s:%d" % (self.host, self.port)
2012-11-06 20:34:22 +00:00
nurl = self.norm(url)
resultlines = [
2020-04-30 19:11:59 +00:00
"url %s" % url,
"cache key %s" % nurl,
"real url %s" % nurl,
"valid",
2012-11-06 20:34:22 +00:00
]
self.direct(url, resultlines)
# missing trailing dir slash
2020-04-30 19:11:59 +00:00
url = "ftp://%s:%d/base" % (self.host, self.port)
2012-11-06 20:34:22 +00:00
nurl = self.norm(url)
resultlines = [
2020-04-30 19:11:59 +00:00
"url %s" % url,
"cache key %s" % nurl,
"real url %s/" % nurl,
"warning Missing trailing directory slash in ftp url.",
"valid",
2012-11-06 20:34:22 +00:00
]
self.direct(url, resultlines)
# ftp two dir slashes
2020-04-30 19:11:59 +00:00
url = "ftp://%s:%d//base/" % (self.host, self.port)
2012-11-06 20:34:22 +00:00
nurl = self.norm(url)
resultlines = [
2020-04-30 19:11:59 +00:00
"url %s" % url,
"cache key %s" % nurl,
"real url %s" % nurl,
"valid",
2012-11-06 20:34:22 +00:00
]
self.direct(url, resultlines)
# ftp many dir slashes
2020-04-30 19:11:59 +00:00
url = "ftp://%s:%d////////base/" % (self.host, self.port)
2012-11-06 20:34:22 +00:00
nurl = self.norm(url)
resultlines = [
2020-04-30 19:11:59 +00:00
"url %s" % url,
"cache key %s" % nurl,
"real url %s" % nurl,
"valid",
2012-11-06 20:34:22 +00:00
]
self.direct(url, resultlines)
# ftp three slashes
2020-04-30 19:11:59 +00:00
url = "ftp:///%s:%d/" % (self.host, self.port)
2012-11-06 20:34:22 +00:00
nurl = self.norm(url)
resultlines = [
2020-04-30 19:11:59 +00:00
"url %s" % url,
"cache key None",
"real url %s" % nurl,
"error",
2012-11-06 20:34:22 +00:00
]
self.direct(url, resultlines)