diff options
Diffstat (limited to 'python/tests/websimulator.py')
| -rw-r--r-- | python/tests/websimulator.py | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/python/tests/websimulator.py b/python/tests/websimulator.py index 1a07e8b5..2d6738fa 100644 --- a/python/tests/websimulator.py +++ b/python/tests/websimulator.py @@ -27,11 +27,7 @@ import abstractweb class HttpRequest(abstractweb.HttpRequestMixin, object): client = None # Principal or web site sending the request. - body = None form = None - headers = None - method = None # 'GET' or 'POST' or 'PUT' or... - url = None def __init__(self, client, method, url, headers = None, body = None, form = None): self.client = client @@ -85,6 +81,13 @@ class HttpRequest(abstractweb.HttpRequestMixin, object): scheme = property(getScheme) +class FunctionHttpRequest(abstractweb.FunctionHttpRequest): + def getClient(self): + return self.previousHttpRequest.client + + client = property(getClient) + + class HttpResponse(abstractweb.HttpResponseMixin, object): def send(self, httpRequestHandler): return self @@ -199,7 +202,7 @@ class WebUser(abstractweb.WebUserMixin, object): class WebSite(abstractweb.WebSiteMixin, WebClient): """Simulation of a web site""" - instantAuthentication = True # Authentication doesn't use a HTML form. + FunctionHttpRequest = FunctionHttpRequest # Class url = None # The main URL of web site WebSession = WebSession WebUser = WebUser @@ -210,24 +213,6 @@ class WebSite(abstractweb.WebSiteMixin, WebClient): self.url = url self.internet.addWebSite(self) - def authenticate(self, handler, callback, *arguments, **keywordArguments): - userId = handler.httpRequest.client.keyring.get(self.url, None) - userAuthenticated = userId in self.users - - import lasso - authenticationMethod = lasso.samlAuthenticationMethodPassword # FIXME - if userAuthenticated: - session = handler.session - if session is None: - session = handler.createSession() - user = handler.user - if user is None: - user = handler.createUser() - session.userId = user.uniqueId - user.sessionToken = session.token - return callback(handler, userAuthenticated, authenticationMethod, *arguments, - **keywordArguments) - def handleHttpRequest(self, httpRequest): httpRequestHandler = HttpRequestHandler(self, httpRequest) @@ -241,3 +226,19 @@ class WebSite(abstractweb.WebSiteMixin, WebClient): httpRequestHandler.user = self.users.get(session.userId, None) return self.handleHttpRequestHandler(httpRequestHandler) + + def login_local(self, handler): + userId = handler.httpRequest.client.keyring.get(self.url, None) + userAuthenticated = userId in self.users + # authenticationMethod = lasso.samlAuthenticationMethodPassword + authenticationMethod = 'urn:oasis:names:tc:SAML:1.0:am:password' + if userAuthenticated: + session = handler.session + if session is None: + session = handler.createSession() + user = handler.user + if user is None: + user = handler.createUser() + session.userId = user.uniqueId + user.sessionToken = session.token + return self.login_done(handler, userAuthenticated, authenticationMethod) |
