Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
ae197c93
Commit
ae197c93
authored
Apr 09, 2016
by
Martin Panter
Browse files
Options
Browse Files
Download
Plain Diff
Issue #26609: Merge HTTP tests from 3.5
parents
1edcd50b
fc475a9f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
12 deletions
+29
-12
Lib/test/test_httpservers.py
Lib/test/test_httpservers.py
+29
-12
No files found.
Lib/test/test_httpservers.py
View file @
ae197c93
...
@@ -285,6 +285,7 @@ class SimpleHTTPServerTestCase(BaseTestCase):
...
@@ -285,6 +285,7 @@ class SimpleHTTPServerTestCase(BaseTestCase):
self
.
data
=
b'We are the knights who say Ni!'
self
.
data
=
b'We are the knights who say Ni!'
self
.
tempdir
=
tempfile
.
mkdtemp
(
dir
=
basetempdir
)
self
.
tempdir
=
tempfile
.
mkdtemp
(
dir
=
basetempdir
)
self
.
tempdir_name
=
os
.
path
.
basename
(
self
.
tempdir
)
self
.
tempdir_name
=
os
.
path
.
basename
(
self
.
tempdir
)
self
.
base_url
=
'/'
+
self
.
tempdir_name
with
open
(
os
.
path
.
join
(
self
.
tempdir
,
'test'
),
'wb'
)
as
temp
:
with
open
(
os
.
path
.
join
(
self
.
tempdir
,
'test'
),
'wb'
)
as
temp
:
temp
.
write
(
self
.
data
)
temp
.
write
(
self
.
data
)
...
@@ -331,7 +332,7 @@ class SimpleHTTPServerTestCase(BaseTestCase):
...
@@ -331,7 +332,7 @@ class SimpleHTTPServerTestCase(BaseTestCase):
filename
=
os
.
fsdecode
(
support
.
TESTFN_UNDECODABLE
)
+
'.txt'
filename
=
os
.
fsdecode
(
support
.
TESTFN_UNDECODABLE
)
+
'.txt'
with
open
(
os
.
path
.
join
(
self
.
tempdir
,
filename
),
'wb'
)
as
f
:
with
open
(
os
.
path
.
join
(
self
.
tempdir
,
filename
),
'wb'
)
as
f
:
f
.
write
(
support
.
TESTFN_UNDECODABLE
)
f
.
write
(
support
.
TESTFN_UNDECODABLE
)
response
=
self
.
request
(
self
.
tempdir_name
+
'/'
)
response
=
self
.
request
(
self
.
base_url
+
'/'
)
if
sys
.
platform
==
'darwin'
:
if
sys
.
platform
==
'darwin'
:
# On Mac OS the HFS+ filesystem replaces bytes that aren't valid
# On Mac OS the HFS+ filesystem replaces bytes that aren't valid
# UTF-8 into a percent-encoded value.
# UTF-8 into a percent-encoded value.
...
@@ -345,27 +346,27 @@ class SimpleHTTPServerTestCase(BaseTestCase):
...
@@ -345,27 +346,27 @@ class SimpleHTTPServerTestCase(BaseTestCase):
.
encode
(
enc
,
'surrogateescape'
),
body
)
.
encode
(
enc
,
'surrogateescape'
),
body
)
self
.
assertIn
((
'>%s<'
%
html
.
escape
(
filename
))
self
.
assertIn
((
'>%s<'
%
html
.
escape
(
filename
))
.
encode
(
enc
,
'surrogateescape'
),
body
)
.
encode
(
enc
,
'surrogateescape'
),
body
)
response
=
self
.
request
(
self
.
tempdir_name
+
'/'
+
quotedname
)
response
=
self
.
request
(
self
.
base_url
+
'/'
+
quotedname
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
,
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
,
data
=
support
.
TESTFN_UNDECODABLE
)
data
=
support
.
TESTFN_UNDECODABLE
)
def
test_get
(
self
):
def
test_get
(
self
):
#constructs the path relative to the root directory of the HTTPServer
#constructs the path relative to the root directory of the HTTPServer
response
=
self
.
request
(
self
.
tempdir_name
+
'/test'
)
response
=
self
.
request
(
self
.
base_url
+
'/test'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
,
data
=
self
.
data
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
,
data
=
self
.
data
)
# check for trailing "/" which should return 404. See Issue17324
# check for trailing "/" which should return 404. See Issue17324
response
=
self
.
request
(
self
.
tempdir_name
+
'/test/'
)
response
=
self
.
request
(
self
.
base_url
+
'/test/'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
NOT_FOUND
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
NOT_FOUND
)
response
=
self
.
request
(
self
.
tempdir_name
+
'/'
)
response
=
self
.
request
(
self
.
base_url
+
'/'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
)
response
=
self
.
request
(
self
.
tempdir_name
)
response
=
self
.
request
(
self
.
base_url
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
MOVED_PERMANENTLY
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
MOVED_PERMANENTLY
)
response
=
self
.
request
(
self
.
tempdir_name
+
'/?hi=2'
)
response
=
self
.
request
(
self
.
base_url
+
'/?hi=2'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
)
response
=
self
.
request
(
self
.
tempdir_name
+
'?hi=1'
)
response
=
self
.
request
(
self
.
base_url
+
'?hi=1'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
MOVED_PERMANENTLY
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
MOVED_PERMANENTLY
)
self
.
assertEqual
(
response
.
getheader
(
"Location"
),
self
.
assertEqual
(
response
.
getheader
(
"Location"
),
self
.
tempdir_name
+
"/?hi=1"
)
self
.
base_url
+
"/?hi=1"
)
response
=
self
.
request
(
'/ThisDoesNotExist'
)
response
=
self
.
request
(
'/ThisDoesNotExist'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
NOT_FOUND
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
NOT_FOUND
)
response
=
self
.
request
(
'/'
+
'ThisDoesNotExist'
+
'/'
)
response
=
self
.
request
(
'/'
+
'ThisDoesNotExist'
+
'/'
)
...
@@ -374,7 +375,7 @@ class SimpleHTTPServerTestCase(BaseTestCase):
...
@@ -374,7 +375,7 @@ class SimpleHTTPServerTestCase(BaseTestCase):
data
=
b"Dummy index file
\
r
\
n
"
data
=
b"Dummy index file
\
r
\
n
"
with
open
(
os
.
path
.
join
(
self
.
tempdir_name
,
'index.html'
),
'wb'
)
as
f
:
with
open
(
os
.
path
.
join
(
self
.
tempdir_name
,
'index.html'
),
'wb'
)
as
f
:
f
.
write
(
data
)
f
.
write
(
data
)
response
=
self
.
request
(
'/'
+
self
.
tempdir_name
+
'/'
)
response
=
self
.
request
(
self
.
base_url
+
'/'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
,
data
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
,
data
)
# chmod() doesn't work as expected on Windows, and filesystem
# chmod() doesn't work as expected on Windows, and filesystem
...
@@ -382,14 +383,14 @@ class SimpleHTTPServerTestCase(BaseTestCase):
...
@@ -382,14 +383,14 @@ class SimpleHTTPServerTestCase(BaseTestCase):
if
os
.
name
==
'posix'
and
os
.
geteuid
()
!=
0
:
if
os
.
name
==
'posix'
and
os
.
geteuid
()
!=
0
:
os
.
chmod
(
self
.
tempdir
,
0
)
os
.
chmod
(
self
.
tempdir
,
0
)
try
:
try
:
response
=
self
.
request
(
self
.
tempdir_name
+
'/'
)
response
=
self
.
request
(
self
.
base_url
+
'/'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
NOT_FOUND
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
NOT_FOUND
)
finally
:
finally
:
os
.
chmod
(
self
.
tempdir
,
0o755
)
os
.
chmod
(
self
.
tempdir
,
0o755
)
def
test_head
(
self
):
def
test_head
(
self
):
response
=
self
.
request
(
response
=
self
.
request
(
self
.
tempdir_name
+
'/test'
,
method
=
'HEAD'
)
self
.
base_url
+
'/test'
,
method
=
'HEAD'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
)
self
.
assertEqual
(
response
.
getheader
(
'content-length'
),
self
.
assertEqual
(
response
.
getheader
(
'content-length'
),
str
(
len
(
self
.
data
)))
str
(
len
(
self
.
data
)))
...
@@ -405,6 +406,22 @@ class SimpleHTTPServerTestCase(BaseTestCase):
...
@@ -405,6 +406,22 @@ class SimpleHTTPServerTestCase(BaseTestCase):
response
=
self
.
request
(
'/'
,
method
=
'GETs'
)
response
=
self
.
request
(
'/'
,
method
=
'GETs'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
NOT_IMPLEMENTED
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
NOT_IMPLEMENTED
)
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
)
response
=
self
.
request
(
self
.
tempdir_name
+
'/'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
)
response
=
self
.
request
(
self
.
tempdir_name
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
MOVED_PERMANENTLY
)
response
=
self
.
request
(
self
.
tempdir_name
+
'/?hi=2'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
OK
)
response
=
self
.
request
(
self
.
tempdir_name
+
'?hi=1'
)
self
.
check_status_and_reason
(
response
,
HTTPStatus
.
MOVED_PERMANENTLY
)
self
.
assertEqual
(
response
.
getheader
(
"Location"
),
self
.
tempdir_name
+
"/?hi=1"
)
cgi_file1
=
"""
\
cgi_file1
=
"""
\
#!%s
#!%s
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment