Skip to content

Commit f38af61

Browse files
committed
Coding style improvements
1 parent e985c67 commit f38af61

File tree

3 files changed

+24
-20
lines changed

3 files changed

+24
-20
lines changed

Lib/http/server.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,7 @@ def do_GET(self):
684684
f = self.send_head()
685685
if f:
686686
try:
687-
self.copyfile(f, self.wfile, range=self.range)
687+
self.copyfile(f, self.wfile, range=self._range)
688688
finally:
689689
f.close()
690690

@@ -707,7 +707,7 @@ def send_head(self):
707707
"""
708708
path = self.translate_path(self.path)
709709
f = None
710-
self.range = self.parse_range()
710+
self._range = self.parse_range()
711711
if os.path.isdir(path):
712712
parts = urllib.parse.urlsplit(self.path)
713713
if not parts.path.endswith('/'):
@@ -772,14 +772,16 @@ def send_head(self):
772772
f.close()
773773
return None
774774

775-
if self.range:
776-
start, end = self.range
775+
if self._range:
776+
start, end = self._range
777777
if start is None:
778778
# `end` here means suffix length
779779
start = max(0, fs.st_size - end)
780780
end = fs.st_size - 1
781781
if start >= fs.st_size:
782-
# 416 REQUESTED_RANGE_NOT_SATISFIABLE means that none of the range values overlap the extent of the resource
782+
# 416 REQUESTED_RANGE_NOT_SATISFIABLE means that
783+
# none of the range values overlap the extent of
784+
# the resource
783785
f.close()
784786
self.send_error(HTTPStatus.REQUESTED_RANGE_NOT_SATISFIABLE)
785787
return None
@@ -790,11 +792,11 @@ def send_head(self):
790792
self.send_header("Content-Length", str(end - start + 1))
791793

792794
# Update range to be sent to be used later in copyfile
793-
self.range = (start, end)
795+
self._range = (start, end)
794796
else:
795797
self.send_response(HTTPStatus.OK)
796798
self.send_header("Accept-Ranges", "bytes")
797-
self.send_header("Content-Length", str(fs[6]))
799+
self.send_header("Content-Length", str(fs.st_size))
798800
self.send_header("Content-type", ctype)
799801
self.send_header("Last-Modified",
800802
self.date_time_string(fs.st_mtime))
@@ -956,10 +958,10 @@ def parse_range(self):
956958
957959
"""
958960
range_header = self.headers.get('range')
959-
if not range_header:
961+
if range_header is None:
960962
return None
961963
m = RANGE_REGEX_PATTERN.match(range_header)
962-
if not m:
964+
if m is None:
963965
return None
964966

965967
start = int(m.group(1)) if m.group(1) else None

Lib/test/test_httpservers.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -540,48 +540,49 @@ def test_get(self):
540540
os.chmod(self.tempdir, 0o755)
541541

542542
def test_range_get(self):
543-
response = self.request(self.base_url + '/test')
543+
route = self.base_url + '/test'
544+
response = self.request(route)
544545
self.assertEqual(response.getheader('accept-ranges'), 'bytes')
545546
self.check_status_and_reason(response, HTTPStatus.OK, data=self.data)
546547

547548
# valid ranges
548-
response = self.request(self.base_url + '/test', headers={'Range': 'bytes=3-12'})
549+
response = self.request(route, headers={'Range': 'bytes=3-12'})
549550
self.assertEqual(response.getheader('content-range'), 'bytes 3-12/30')
550551
self.assertEqual(response.getheader('content-length'), '10')
551552
self.check_status_and_reason(response, HTTPStatus.PARTIAL_CONTENT, data=self.data[3:13])
552553

553-
response = self.request(self.base_url + '/test', headers={'Range': 'bytes=3-'})
554+
response = self.request(route, headers={'Range': 'bytes=3-'})
554555
self.assertEqual(response.getheader('content-range'), 'bytes 3-29/30')
555556
self.assertEqual(response.getheader('content-length'), '27')
556557
self.check_status_and_reason(response, HTTPStatus.PARTIAL_CONTENT, data=self.data[3:])
557558

558-
response = self.request(self.base_url + '/test', headers={'Range': 'bytes=-5'})
559+
response = self.request(route, headers={'Range': 'bytes=-5'})
559560
self.assertEqual(response.getheader('content-range'), 'bytes 25-29/30')
560561
self.assertEqual(response.getheader('content-length'), '5')
561562
self.check_status_and_reason(response, HTTPStatus.PARTIAL_CONTENT, data=self.data[25:])
562563

563-
response = self.request(self.base_url + '/test', headers={'Range': 'bytes=29-29'})
564+
response = self.request(route, headers={'Range': 'bytes=29-29'})
564565
self.assertEqual(response.getheader('content-range'), 'bytes 29-29/30')
565566
self.assertEqual(response.getheader('content-length'), '1')
566567
self.check_status_and_reason(response, HTTPStatus.PARTIAL_CONTENT, data=self.data[29:])
567568

568569
# end > file size
569-
response = self.request(self.base_url + '/test', headers={'Range': 'bytes=25-100'})
570+
response = self.request(route, headers={'Range': 'bytes=25-100'})
570571
self.assertEqual(response.getheader('content-range'), 'bytes 25-29/30')
571572
self.assertEqual(response.getheader('content-length'), '5')
572573
self.check_status_and_reason(response, HTTPStatus.PARTIAL_CONTENT, data=self.data[25:])
573574

574575
# invalid ranges
575-
response = self.request(self.base_url + '/test', headers={'Range': 'bytes=100-200'})
576+
response = self.request(route, headers={'Range': 'bytes=100-200'})
576577
self.check_status_and_reason(response, HTTPStatus.REQUESTED_RANGE_NOT_SATISFIABLE)
577578

578-
response = self.request(self.base_url + '/test', headers={'Range': 'bytes=4-3'})
579+
response = self.request(route, headers={'Range': 'bytes=4-3'})
579580
self.check_status_and_reason(response, HTTPStatus.OK, data=self.data)
580581

581-
response = self.request(self.base_url + '/test', headers={'Range': 'bytes=wrong format'})
582+
response = self.request(route, headers={'Range': 'bytes=wrong format'})
582583
self.check_status_and_reason(response, HTTPStatus.OK, data=self.data)
583584

584-
response = self.request(self.base_url + '/test', headers={'Range': 'bytes=-'})
585+
response = self.request(route, headers={'Range': 'bytes=-'})
585586
self.check_status_and_reason(response, HTTPStatus.OK, data=self.data)
586587

587588
def test_head(self):
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
Add support for HTTP Range header in ``SimpleHTTPServer``
1+
Add support for HTTP Range header in :class:`SimpleHTTPServer`. Add an optional
2+
``range`` paramater to :func:`SimpleHTTPRequestHandler.copyfile`.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy