comparison simpypi/factory.py @ 72:b2ea14bf9f46

add a slash to the namespaced directory
author Jeff Hammel <jhammel@mozilla.com>
date Fri, 02 Mar 2012 11:35:49 -0800
parents 8fa30276b3e0
children
comparison
equal deleted inserted replaced
71:dcb98ad8463e 72:b2ea14bf9f46
9 import shutil 9 import shutil
10 import sys 10 import sys
11 import tempfile 11 import tempfile
12 12
13 from fileserver import DirectoryServer 13 from fileserver import DirectoryServer
14 from webob import exc
14 from wsgi import SimPyPI 15 from wsgi import SimPyPI
15 from wsgiref import simple_server 16 from wsgiref import simple_server
16 17
17 class NamespacedFileserver(DirectoryServer): 18 class NamespacedFileserver(DirectoryServer):
18 19
22 self.namespace = namespace 23 self.namespace = namespace
23 24
24 def __call__(self, environ, start_response): 25 def __call__(self, environ, start_response):
25 path = environ['PATH_INFO'] 26 path = environ['PATH_INFO']
26 if path == self.namespace: 27 if path == self.namespace:
28 response = exc.HTTPMovedPermanently(add_slash=True)
29 return response(environ, start_response)
27 environ['PATH_INFO'] = '/' 30 environ['PATH_INFO'] = '/'
28 return DirectoryServer.__call__(self, environ, start_response) 31 return DirectoryServer.__call__(self, environ, start_response)
29 elif path.startswith(self.namespace + '/'): 32 elif path.startswith(self.namespace + '/'):
30 environ['PATH_INFO'] = path[len(self.namespace):] 33 environ['PATH_INFO'] = path[len(self.namespace):]
31 return DirectoryServer.__call__(self, environ, start_response) 34 return DirectoryServer.__call__(self, environ, start_response)