local_renderer.py revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import os 6import urlparse 7 8from render_servlet import RenderServlet 9from fake_fetchers import ConfigureFakeFetchers 10from servlet import Request 11 12class LocalRenderer(object): 13 '''Renders pages fetched from the local file system. 14 ''' 15 def __init__(self, base_dir): 16 self._base_dir = base_dir.replace(os.sep, '/').rstrip('/') 17 18 def Render(self, path, headers=None, servlet=RenderServlet): 19 '''Renders |path|, returning a tuple of (status, contents, headers). 20 ''' 21 headers = headers or {} 22 # TODO(kalman): do this via a LocalFileSystem not this fake AppEngine stuff. 23 ConfigureFakeFetchers(os.path.join(self._base_dir, 'docs')) 24 url_path = urlparse.urlparse(path.replace(os.sep, '/')).path 25 return servlet(Request(url_path, headers)).Get() 26