# HG changeset patch # User paulb # Date 1191020383 0 # Node ID afbaf2568a91243d34e4cfa1ef1c89a924638ed5 # Parent bebdce5d900278b2db1f130372409302d1268dcc [project @ 2007-09-28 22:59:43 by paulb] Support Webware 0.9.4 API changes and behaviour. diff -r bebdce5d9002 -r afbaf2568a91 WebStack/Webware.py --- a/WebStack/Webware.py Thu Sep 27 22:50:56 2007 +0000 +++ b/WebStack/Webware.py Fri Sep 28 22:59:43 2007 +0000 @@ -40,6 +40,12 @@ self.trans = trans self.content_type = None + def commit(self): + + "Commit the transaction." + + self.trans.response().commit() + # Server-related methods. def get_server_name(self): @@ -128,25 +134,38 @@ charset employed. """ - return self.parse_content_type(self.trans.request().contentType()) + request = self.trans.request() + if hasattr(request, "contentType"): + content_type = request.contentType() + else: + content_type = self.trans.request()._environ.get('CONTENT_TYPE', None) + return self.parse_content_type(content_type) def get_content_charsets(self): """ Returns the character set preferences. - NOTE: Requires enhancements to HTTPRequest. + NOTE: Requires enhancements to HTTPRequest in 0.8.1 or earlier. """ - return self.trans.request().contentCharsets() + request = self.trans.request() + if hasattr(request, "contentCharsets"): + return request.contentCharsets() + else: + return request.accept("charset") def get_content_languages(self): """ Returns extracted language information from the transaction. - NOTE: Requires enhancements to HTTPRequest. + NOTE: Requires enhancements to HTTPRequest in 0.8.1 or earlier. """ - return self.trans.request().contentLanguages() + request = self.trans.request() + if hasattr(request, "contentLanguages"): + return request.contentLanguages() + else: + return request.accept("language") def get_path(self, encoding=None): @@ -199,10 +218,20 @@ path_info = self.trans.request().pathInfo() context_name = self.trans.request().contextName() + + # Make the context name resemble the start of a path if it doesn't + # already do so. + + if not context_name.startswith("/"): + context_name = "/" + context_name + + # Correct the path info if appropriate. + if path_info.startswith(context_name): real_path_info = path_info[len(context_name):] else: real_path_info = path_info + return decode_value(real_path_info, encoding) def get_query_string(self): @@ -392,7 +421,7 @@ specification. """ - self.trans.response().setStatus(response_code) + self.trans.response().setStatus(response_code, str(response_code)) def set_header_value(self, header, value):