Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions Lib/test/test_httpservers.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import re
import base64
import ntpath
import platform
import shutil
import email.message
import email.utils
Expand All @@ -29,6 +30,10 @@
import unittest
from test import support

# Some OS accept trailingSlash as part of a filename
# https://bugs.python.org/issue34711#msg325532 mentions Windows sometimes accepts a trailingSlash
# so more work could be done
trailingSlashOK = platform.system() in ('AIX')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably should use a literal set here. If you meant to use a tuple, you forgot the trailing comma. So, I suggest in {'AIX'} instead.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a string, not a one-element tuple.

Equality test may be clearer (and simple to change if needed).


class NoLogRequestHandler:
def log_message(self, *args):
Expand Down Expand Up @@ -417,9 +422,10 @@ def test_get(self):
#constructs the path relative to the root directory of the HTTPServer
response = self.request(self.base_url + '/test')
self.check_status_and_reason(response, HTTPStatus.OK, data=self.data)
# check for trailing "/" which should return 404. See Issue17324
# check for trailing "/" which might return 404. See Issue17324 and Issue34711
response = self.request(self.base_url + '/test/')
self.check_status_and_reason(response, HTTPStatus.NOT_FOUND)
checkSlash = HTTPStatus.NOT_FOUND if not trailingSlashOK else HTTPStatus.OK
self.check_status_and_reason(response, checkSlash)
response = self.request(self.base_url + '/')
self.check_status_and_reason(response, HTTPStatus.OK)
response = self.request(self.base_url)
Expand Down Expand Up @@ -520,7 +526,8 @@ def test_path_without_leading_slash(self):
response = self.request(self.tempdir_name + '/test')
self.check_status_and_reason(response, HTTPStatus.OK, data=self.data)
response = self.request(self.tempdir_name + '/test/')
self.check_status_and_reason(response, HTTPStatus.NOT_FOUND)
checkSlash = HTTPStatus.NOT_FOUND if not trailingSlashOK else HTTPStatus.OK
self.check_status_and_reason(response, checkSlash)
response = self.request(self.tempdir_name + '/')
self.check_status_and_reason(response, HTTPStatus.OK)
response = self.request(self.tempdir_name)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Fix test_httpservers for AIX (trailingSlashOK)
patch by aixtools