linkchecker/tests/checker/test_misc.py
Chris Mayo 40c39c27e6 Fix TestMisc.test_itms_services() on Python 3.12
E   -cache key itms-services:?action=download-manifest&url=http://www.example.com/
E   -real url itms-services:?action=download-manifest&url=http://www.example.com/
E   +cache key itms-services://?action=download-manifest&url=http://www.example.com/
E   +real url itms-services://?action=download-manifest&url=http://www.example.com/
E    valid

gh-104139: Teach urllib.parse.unsplit() to retain the "//" when assembling
itms-services://?action=generate-bugs style Apple Platform Deployment [2] URLs. [1]

[1]
https://docs.python.org/3.12/whatsnew/changelog.html

[2] "Distribute proprietary in-house apps to Apple devices":
https://support.apple.com/en-gb/guide/deployment/depce7cefc4d/web
2023-09-06 19:22:04 +01:00

61 lines
1.9 KiB
Python

# Copyright (C) 2004-2009 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 miscellaneous html tag parsing and URL types
"""
import sys
from tests import need_network
from . import LinkCheckTest
class TestMisc(LinkCheckTest):
"""
Test misc link types.
"""
@need_network
def test_misc(self):
self.file_test("misc.html")
def test_html5(self):
self.file_test("html5.html")
def test_utf8(self):
self.file_test("utf8.html")
@need_network
def test_archive(self):
self.file_test("archive.html")
@need_network
def test_itms_services(self):
if sys.version_info < (3, 12):
url = "itms-services:?action=download-manifest&url=http://www.example.com/"
else:
url = \
"itms-services://?action=download-manifest&url=http://www.example.com/"
resultlines = [
"url %s" % url,
"cache key %s" % url,
"real url %s" % url,
"valid",
"url http://www.example.com/",
"cache key http://www.example.com/",
"real url http://www.example.com/",
"valid",
]
self.direct(url, resultlines, recursionlevel=1)