From a0a74c1a170f5e8e2c02bd52e43abfe598433a96 Mon Sep 17 00:00:00 2001 From: Emmanuel Raviart Date: Mon, 9 Aug 2004 16:19:45 +0000 Subject: Updated Python tests. Not finished but Valos want it to debug Lasso. --- python/tests/abstractweb.py | 53 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 13 deletions(-) (limited to 'python/tests/abstractweb.py') diff --git a/python/tests/abstractweb.py b/python/tests/abstractweb.py index 14eaced3..6c80ff7a 100644 --- a/python/tests/abstractweb.py +++ b/python/tests/abstractweb.py @@ -35,28 +35,35 @@ class HttpRequestMixin: query = None scheme = None # 'http' or 'https' - def getFormField(self, name, default = 'none'): + def getFormField(self, name, default = None): raise NotImplementedError - def getQueryBoolean(self, name, default = 'none'): - try: - fieldValue = self.getQueryField(name) - except KeyError: - if default == 'none': - raise + def getQueryBoolean(self, name, default = None): + fieldValue = self.getQueryField(name, 'none') + if fieldValue == 'none': return default - return fieldValue.lower not in ('', '0', 'false') + else: + return fieldValue.lower not in ('', '0', 'false') - def getQueryField(self, name, default = 'none'): + def getQueryField(self, name, default = None): if self.query: for field in self.query.split('&'): fieldName, fieldValue = field.split('=') if name == fieldName: return fieldValue - if default == 'none': - raise KeyError(name) return default + def hasFormField(self, name): + raise NotImplementedError + + def hasQueryField(self, name): + if self.query: + for field in self.query.split('&'): + fieldName, fieldValue = field.split('=') + if name == fieldName: + return True + return False + class HttpResponseMixin: body = None @@ -113,7 +120,7 @@ class HttpResponseMixin: self.statusMessage = statusMessage else: self.statusMessage = self.defaultStatusMessages.get(statusCode) - httpResponseHeaders = httpRequestHandler.webServer.httpResponseHeaders + httpResponseHeaders = httpRequestHandler.site.httpResponseHeaders if headers: httpResponseHeaders = httpResponseHeaders.copy() for name, value in headers.iteritems(): @@ -133,7 +140,7 @@ class HttpRequestHandlerMixin: httpResponse = None session = None user = None - webServer = None # The web server, which can then redirect to several virtual hosts + site = None # The virtual host def respond(self, statusCode = 200, statusMessage = None, headers = None, body = None): # Session must be saved before responding. Otherwise, when the server is multitasked or @@ -154,3 +161,23 @@ class HttpRequestHandlerMixin: def respondRedirectTemporarily(self, url): raise NotImplementedError + + +class WebSessionMixin: + publishToken = False + token = None + + +class WebSiteMixin: + def authenticateX509User(self, clientCertificate): + # We should check certificate (for example clientCertificate.get_serial_number() + # and return the user if one matches, or None otherwise. + return None + + def authenticateLoginPasswordUser(self, login, password): + # We should check login & password and return the user if one matches or None otherwise. + return None + + +class WebUserMixin: + sessionToken = None -- cgit