mirror of
https://github.com/Hopiu/linkchecker.git
synced 2026-03-17 06:20:27 +00:00
TypeError: 'NoneType' object is not callable
As per:
2cbff492 ("Fix http tests failing with pytest due to missing _()", 2022-10-03)
80 lines
2.8 KiB
Python
80 lines
2.8 KiB
Python
# 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.
|
|
#
|
|
# 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.
|
|
"""
|
|
Test cgi form routines.
|
|
"""
|
|
import urllib.parse
|
|
from io import BytesIO
|
|
from wsgiref.util import setup_testing_defaults
|
|
from linkcheck.lc_cgi import checkform, checklink, LCFormError, application
|
|
from linkcheck.strformat import limit
|
|
|
|
from . import TestBase
|
|
|
|
|
|
class TestWsgi(TestBase):
|
|
"""Test wsgi application."""
|
|
|
|
def test_form_valid_url(self):
|
|
# Check url validity.
|
|
env = dict()
|
|
form = dict(url="http://www.example.com/", level="1")
|
|
checkform(form, env)
|
|
|
|
def test_form_empty_url(self):
|
|
# Check with empty url.
|
|
env = dict()
|
|
form = dict(url="", level="0")
|
|
self.assertRaises(LCFormError, checkform, form, env)
|
|
|
|
def test_form_default_url(self):
|
|
# Check with default url.
|
|
env = dict()
|
|
form = dict(url="http://", level="0")
|
|
self.assertRaises(LCFormError, checkform, form, env)
|
|
|
|
def test_form_invalid_url(self):
|
|
# Check url (in)validity.
|
|
env = dict()
|
|
form = dict(url="http://www.foo bar/", level="0")
|
|
self.assertRaises(LCFormError, checkform, form, env)
|
|
|
|
def test_checklink(self):
|
|
form = dict(url="http://www.example.com/", level="0")
|
|
checklink(form, {})
|
|
|
|
def test_application(self):
|
|
form = dict(url="http://www.example.com/", level="0")
|
|
formdata = urllib.parse.urlencode(form)
|
|
formdata = formdata.encode("ascii")
|
|
environ = {"wsgi.input": BytesIO(formdata)}
|
|
setup_testing_defaults(environ)
|
|
test_response = b""
|
|
test_headers = [None]
|
|
test_status = [None]
|
|
|
|
def start_response(status, headers):
|
|
test_status[0] = status
|
|
test_headers[0] = headers
|
|
|
|
for str_data in application(environ, start_response):
|
|
if not isinstance(str_data, bytes):
|
|
err = "answer is not a byte string: %r" % limit(str_data, 30)
|
|
self.assertTrue(False, err)
|
|
test_response += str_data
|
|
self.assertEqual(test_status[0], "200 OK")
|
|
self.assertTrue(b"Generated by LinkChecker" in test_response)
|
|
self.assertFalse(b"internal error" in test_response)
|