The rules need not be a defaultdict.

This commit is contained in:
Darshit Shah 2013-08-31 20:57:45 +05:30
parent dccc154a0e
commit 50b4f0c72b
3 changed files with 26 additions and 13 deletions

View File

@ -1,3 +1,17 @@
2013-08-31 Darshit Shah <darnir@gmail.com>
* WgetTest.py: Remove import module defaultdict.
(CommonMethods.get_server_rules): server_rules should be a dict, not a
defaultdict (list).
* HTTPServer.py (WgetHTTPRequestHandler.get_rule_list): If rule does
not exist, return None. Not an emppty list.
(WgetHTTPRequestHandler.test_cookies): Rule variable is not a list
(__Handler.send_cust_headers): Same
(__Handler.custom_response): Same
(__Handler.is_authorized): Same
(__Handler.expect_headers): Same
(__Handler.reject_headers): Same
2013-08-31 Darshit Shah <darnir@gmail.com>
* README: (newfile) Simple help / instructions about using the Test

View File

@ -56,7 +56,7 @@ class WgetHTTPRequestHandler (BaseHTTPRequestHandler):
def test_cookies (self):
cookie_recd = self.headers.get ('Cookie')
cookies = self.get_rule_list ('Cookie')
cookie_exp = cookies[0].cookie_value if cookies else None
cookie_exp = cookies.cookie_value if cookies else None
if cookie_exp == cookie_recd:
return True
else:
@ -65,7 +65,7 @@ class WgetHTTPRequestHandler (BaseHTTPRequestHandler):
return False
def get_rule_list (self, name):
r_list = self.rules.get (name) if name in self.rules else list ()
r_list = self.rules.get (name) if name in self.rules else None
return r_list
def do_QUIT (self):
@ -161,7 +161,7 @@ class __Handler (WgetHTTPRequestHandler):
def send_cust_headers (self):
header_obj_list = self.get_rule_list ('SendHeader')
if header_obj_list:
header_obj = header_obj_list[0]
header_obj = header_obj_list
for header in header_obj.headers:
self.send_header (header, header_obj.headers[header])
@ -172,7 +172,7 @@ class __Handler (WgetHTTPRequestHandler):
def custom_response (self):
codes = self.get_rule_list ('Response')
if codes:
self.send_response (codes[0].response_code)
self.send_response (codes.response_code)
self.finish_headers ()
return False
else:
@ -272,13 +272,13 @@ class __Handler (WgetHTTPRequestHandler):
auth_rule = self.get_rule_list ('Authentication')
if auth_rule:
auth_header = self.headers.get ("Authorization")
req_auth = auth_rule[0].auth_type
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[0])
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)
@ -289,7 +289,7 @@ class __Handler (WgetHTTPRequestHandler):
""" This is modified code to handle a few changes. Should be removed ASAP """
exp_headers_obj = self.get_rule_list ('ExpectHeader')
if exp_headers_obj:
exp_headers = exp_headers_obj[0].headers
exp_headers = exp_headers_obj.headers
for header_line in exp_headers:
header_re = self.headers.get (header_line)
if header_re is None or header_re != exp_headers[header_line]:
@ -299,9 +299,9 @@ class __Handler (WgetHTTPRequestHandler):
return True
def reject_headers (self):
rej_headers_list = self.get_rule_list ("RejectHeader")
if rej_headers_list:
rej_headers = rej_headers_list[0].headers
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]:

View File

@ -7,7 +7,6 @@ import HTTPServer
import http.client
import re
from subprocess import call
from collections import defaultdict
from ColourTerm import printer
""" A Custom Exception raised by the Test Environment. """
@ -134,10 +133,10 @@ class CommonMethods:
options are parsed in a true and better fashion. For an example,
see the commented portion in Test-basic-auth.py.
"""
server_rules = defaultdict (list)
server_rules = dict ()
for rule in file_obj.rules:
r_obj = getattr (self, rule) (file_obj.rules[rule])
server_rules[rule].append (r_obj)
server_rules[rule] = r_obj
return server_rules
""" Pre-Test Hook Function Calls """