1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

Minor optimizations of Python tests

This commit is contained in:
Darshit Shah 2014-10-08 16:57:22 +05:30 committed by Tim Ruehsen
parent 7cd528a4e9
commit 796da8da3a
5 changed files with 28 additions and 49 deletions

View File

@ -1,3 +1,18 @@
2014-10-01 Darshit Shah <darnir@gmail.com>
* Makefile.am: Run the tests in Python's Optimizedmode
* conf/__init__.py (gen_hook): Use try..except instead of if..else
* misc/color_terminal.py: System and check will not change while a test is
run. Do not test for them on every invokation of printer()
* server/http/http_server.py: The ssl and re modules are required by
specific functions. Load them lazily
(HTTPSServer.__init__): Lazy load ssl module here
(_handler.parse_range_header): Lazy load re module here
(_Handler.get_rule_list): get() can return a default value. Use it
(_Handler.guess_type): Same
(_Handler.is_authorized): Unused function artefact. Remove
(_Handler.reject_headers): Unused function artefact. Remove
2014-10-08 Darshit Shah <darnir@gmail.com>
* Makefile.am: Fix EXTRA_DIST variable for make distcheck

View File

@ -3,7 +3,6 @@ import os
# this file implements the mechanism of conf class auto-registration,
# don't modify this file if you have no idea what you're doing
def gen_hook():
hook_table = {}
@ -24,9 +23,9 @@ def gen_hook():
return cls
def find_hook(name):
if name in hook_table:
try:
return hook_table[name]
else:
except:
raise AttributeError
return Wrapper, find_hook

View File

@ -25,14 +25,12 @@ T_COLORS = {
'ENDC' : '\033[0m'
}
system = True if platform.system() == 'Linux' else False
check = False if getenv("MAKE_CHECK") == 'True' else True
def printer (color, string):
if platform.system () == 'Linux':
if getenv ("MAKE_CHECK", "False") == "True":
print (string)
else:
if system and check:
print (T_COLORS.get (color) + string + T_COLORS.get ('ENDC'))
else:
print (string)

View File

@ -7,10 +7,9 @@ from random import random
from hashlib import md5
import threading
import socket
import re
import ssl
import os
class StoppableHTTPServer (HTTPServer):
""" This class extends the HTTPServer class from default http.server library
in Python 3. The StoppableHTTPServer class is capable of starting an HTTP
@ -36,6 +35,7 @@ class HTTPSServer (StoppableHTTPServer):
additional support for secure connections through SSL. """
def __init__ (self, address, handler):
import ssl
BaseServer.__init__ (self, address, handler)
# step one up because test suite change directory away from $srcdir (don't do that !!!)
CERTFILE = os.path.abspath(os.path.join('..', os.getenv('srcdir', '.'), 'certs', 'wget-cert.pem'))
@ -60,8 +60,7 @@ class _Handler (BaseHTTPRequestHandler):
requests. """
def get_rule_list (self, name):
r_list = self.rules.get (name) if name in self.rules else None
return r_list
return self.rules.get(name)
# The defailt protocol version of the server we run is HTTP/1.1 not
# HTTP/1.0 which is the default with the http.server module.
@ -134,6 +133,7 @@ class _Handler (BaseHTTPRequestHandler):
""" Helper functions for the Handlers. """
def parse_range_header (self, header_line, length):
import re
if header_line is None:
return None
if not header_line.startswith ("bytes="):
@ -315,23 +315,6 @@ class _Handler (BaseHTTPRequestHandler):
if is_auth is False:
raise ServerError ("Unable to Authenticate")
def is_authorized (self):
is_auth = True
auth_rule = self.get_rule_list ('Authentication')
if auth_rule:
auth_header = self.headers.get ("Authorization")
req_auth = auth_rule.auth_type
if req_auth == "Both" or req_auth == "Both_inline":
auth_type = auth_header.split(' ')[0] if auth_header else req_auth
else:
auth_type = req_auth
assert hasattr (self, "authorize_" + auth_type)
is_auth = getattr (self, "authorize_" + auth_type) (auth_header, auth_rule)
if is_auth is False:
self.send_response (401)
self.send_challenge (auth_type)
self.finish_headers ()
return is_auth
def ExpectHeader (self, header_obj):
exp_headers = header_obj.headers
@ -342,6 +325,7 @@ class _Handler (BaseHTTPRequestHandler):
self.finish_headers ()
raise ServerError ("Header " + header_line + " not found")
def RejectHeader (self, header_obj):
rej_headers = header_obj.headers
for header_line in rej_headers:
@ -351,18 +335,6 @@ class _Handler (BaseHTTPRequestHandler):
self.finish_headers ()
raise ServerError ("Header " + header_line + ' received')
def reject_headers (self):
rej_headers = self.get_rule_list ("RejectHeader")
if rej_headers:
rej_headers = rej_headers.headers
for header_line in rej_headers:
header_re = self.headers.get (header_line)
if header_re is not None and header_re == rej_headers[header_line]:
self.send_error (400, 'Blacklisted Header was Sent')
self.end_headers ()
return False
return True
def __log_request (self, method):
req = method + " " + self.path
self.server.request_headers.append (req)
@ -438,11 +410,7 @@ class _Handler (BaseHTTPRequestHandler):
".css" : "text/css",
".html" : "text/html"
}
if ext in extension_map:
return extension_map[ext]
else:
return "text/plain"
return extension_map.get(ext, "text/plain")
class HTTPd (threading.Thread):
server_class = StoppableHTTPServer

View File

@ -116,9 +116,8 @@ class BaseTest:
# 1 a
# 5 e
# 3 c
protocol = protocol.lower()
for url in urls:
cmd_line += '%s://%s/%s ' % (protocol, domain, url)
cmd_line += '%s://%s/%s ' % (protocol.lower(), domain, url)
print(cmd_line)