Python cherrypy.InternalRedirect() Examples
The following are 19
code examples of cherrypy.InternalRedirect().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
cherrypy
, or try the search function
.
Example #1
Source File: _cprequest.py From moviegrabber with GNU General Public License v3.0 | 6 votes |
def run(self, point): """Execute all registered Hooks (callbacks) for the given point.""" exc = None hooks = self[point] hooks.sort() for hook in hooks: # Some hooks are guaranteed to run even if others at # the same hookpoint fail. We will still log the failure, # but proceed on to the next hook. The only way # to stop all processing from one of these hooks is # to raise SystemExit and stop the whole server. if exc is None or hook.failsafe: try: hook() except (KeyboardInterrupt, SystemExit): raise except (cherrypy.HTTPError, cherrypy.HTTPRedirect, cherrypy.InternalRedirect): exc = sys.exc_info()[1] except: exc = sys.exc_info()[1] cherrypy.log(traceback=True, severity=40) if exc: raise exc
Example #2
Source File: _cprequest.py From Tautulli with GNU General Public License v3.0 | 6 votes |
def run(self, point): """Execute all registered Hooks (callbacks) for the given point.""" exc = None hooks = self[point] hooks.sort() for hook in hooks: # Some hooks are guaranteed to run even if others at # the same hookpoint fail. We will still log the failure, # but proceed on to the next hook. The only way # to stop all processing from one of these hooks is # to raise SystemExit and stop the whole server. if exc is None or hook.failsafe: try: hook() except (KeyboardInterrupt, SystemExit): raise except (cherrypy.HTTPError, cherrypy.HTTPRedirect, cherrypy.InternalRedirect): exc = sys.exc_info()[1] except Exception: exc = sys.exc_info()[1] cherrypy.log(traceback=True, severity=40) if exc: raise exc
Example #3
Source File: _cprequest.py From opsbro with MIT License | 6 votes |
def run(self, point): """Execute all registered Hooks (callbacks) for the given point.""" exc = None hooks = self[point] hooks.sort() for hook in hooks: # Some hooks are guaranteed to run even if others at # the same hookpoint fail. We will still log the failure, # but proceed on to the next hook. The only way # to stop all processing from one of these hooks is # to raise SystemExit and stop the whole server. if exc is None or hook.failsafe: try: hook() except (KeyboardInterrupt, SystemExit): raise except (cherrypy.HTTPError, cherrypy.HTTPRedirect, cherrypy.InternalRedirect): exc = sys.exc_info()[1] except: exc = sys.exc_info()[1] cherrypy.log(traceback=True, severity=40) if exc: raise exc
Example #4
Source File: _cprequest.py From bazarr with GNU General Public License v3.0 | 6 votes |
def run(self, point): """Execute all registered Hooks (callbacks) for the given point.""" exc = None hooks = self[point] hooks.sort() for hook in hooks: # Some hooks are guaranteed to run even if others at # the same hookpoint fail. We will still log the failure, # but proceed on to the next hook. The only way # to stop all processing from one of these hooks is # to raise SystemExit and stop the whole server. if exc is None or hook.failsafe: try: hook() except (KeyboardInterrupt, SystemExit): raise except (cherrypy.HTTPError, cherrypy.HTTPRedirect, cherrypy.InternalRedirect): exc = sys.exc_info()[1] except: exc = sys.exc_info()[1] cherrypy.log(traceback=True, severity=40) if exc: raise exc
Example #5
Source File: cptools.py From cherrypy with BSD 3-Clause "New" or "Revised" License | 5 votes |
def redirect(url='', internal=True, debug=False): """Raise InternalRedirect or HTTPRedirect to the given url.""" if debug: cherrypy.log('Redirecting %sto: %s' % ({True: 'internal ', False: ''}[internal], url), 'TOOLS.REDIRECT') if internal: raise cherrypy.InternalRedirect(url) else: raise cherrypy.HTTPRedirect(url)
Example #6
Source File: cptools.py From moviegrabber with GNU General Public License v3.0 | 5 votes |
def redirect(url='', internal=True, debug=False): """Raise InternalRedirect or HTTPRedirect to the given url.""" if debug: cherrypy.log('Redirecting %sto: %s' % ({True: 'internal ', False: ''}[internal], url), 'TOOLS.REDIRECT') if internal: raise cherrypy.InternalRedirect(url) else: raise cherrypy.HTTPRedirect(url)
Example #7
Source File: _cpwsgi.py From moviegrabber with GNU General Public License v3.0 | 5 votes |
def __call__(self, environ, start_response): redirections = [] while True: environ = environ.copy() try: return self.nextapp(environ, start_response) except _cherrypy.InternalRedirect: ir = _sys.exc_info()[1] sn = environ.get('SCRIPT_NAME', '') path = environ.get('PATH_INFO', '') qs = environ.get('QUERY_STRING', '') # Add the *previous* path_info + qs to redirections. old_uri = sn + path if qs: old_uri += "?" + qs redirections.append(old_uri) if not self.recursive: # Check to see if the new URI has been redirected to already new_uri = sn + ir.path if ir.query_string: new_uri += "?" + ir.query_string if new_uri in redirections: ir.request.close() raise RuntimeError("InternalRedirector visited the " "same URL twice: %r" % new_uri) # Munge the environment and try again. environ['REQUEST_METHOD'] = "GET" environ['PATH_INFO'] = ir.path environ['QUERY_STRING'] = ir.query_string environ['wsgi.input'] = BytesIO() environ['CONTENT_LENGTH'] = "0" environ['cherrypy.previous_request'] = ir.request
Example #8
Source File: cptools.py From Tautulli with GNU General Public License v3.0 | 5 votes |
def redirect(url='', internal=True, debug=False): """Raise InternalRedirect or HTTPRedirect to the given url.""" if debug: cherrypy.log('Redirecting %sto: %s' % ({True: 'internal ', False: ''}[internal], url), 'TOOLS.REDIRECT') if internal: raise cherrypy.InternalRedirect(url) else: raise cherrypy.HTTPRedirect(url)
Example #9
Source File: _cpwsgi.py From Tautulli with GNU General Public License v3.0 | 5 votes |
def __call__(self, environ, start_response): redirections = [] while True: environ = environ.copy() try: return self.nextapp(environ, start_response) except _cherrypy.InternalRedirect: ir = _sys.exc_info()[1] sn = environ.get('SCRIPT_NAME', '') path = environ.get('PATH_INFO', '') qs = environ.get('QUERY_STRING', '') # Add the *previous* path_info + qs to redirections. old_uri = sn + path if qs: old_uri += '?' + qs redirections.append(old_uri) if not self.recursive: # Check to see if the new URI has been redirected to # already new_uri = sn + ir.path if ir.query_string: new_uri += '?' + ir.query_string if new_uri in redirections: ir.request.close() tmpl = ( 'InternalRedirector visited the same URL twice: %r' ) raise RuntimeError(tmpl % new_uri) # Munge the environment and try again. environ['REQUEST_METHOD'] = 'GET' environ['PATH_INFO'] = ir.path environ['QUERY_STRING'] = ir.query_string environ['wsgi.input'] = io.BytesIO() environ['CONTENT_LENGTH'] = '0' environ['cherrypy.previous_request'] = ir.request
Example #10
Source File: cptools.py From bazarr with GNU General Public License v3.0 | 5 votes |
def redirect(url='', internal=True, debug=False): """Raise InternalRedirect or HTTPRedirect to the given url.""" if debug: cherrypy.log('Redirecting %sto: %s' % ({True: 'internal ', False: ''}[internal], url), 'TOOLS.REDIRECT') if internal: raise cherrypy.InternalRedirect(url) else: raise cherrypy.HTTPRedirect(url)
Example #11
Source File: _cpwsgi.py From bazarr with GNU General Public License v3.0 | 5 votes |
def __call__(self, environ, start_response): redirections = [] while True: environ = environ.copy() try: return self.nextapp(environ, start_response) except _cherrypy.InternalRedirect: ir = _sys.exc_info()[1] sn = environ.get('SCRIPT_NAME', '') path = environ.get('PATH_INFO', '') qs = environ.get('QUERY_STRING', '') # Add the *previous* path_info + qs to redirections. old_uri = sn + path if qs: old_uri += '?' + qs redirections.append(old_uri) if not self.recursive: # Check to see if the new URI has been redirected to # already new_uri = sn + ir.path if ir.query_string: new_uri += '?' + ir.query_string if new_uri in redirections: ir.request.close() tmpl = ( 'InternalRedirector visited the same URL twice: %r' ) raise RuntimeError(tmpl % new_uri) # Munge the environment and try again. environ['REQUEST_METHOD'] = 'GET' environ['PATH_INFO'] = ir.path environ['QUERY_STRING'] = ir.query_string environ['wsgi.input'] = io.BytesIO() environ['CONTENT_LENGTH'] = '0' environ['cherrypy.previous_request'] = ir.request
Example #12
Source File: cptools.py From opsbro with MIT License | 5 votes |
def redirect(url='', internal=True, debug=False): """Raise InternalRedirect or HTTPRedirect to the given url.""" if debug: cherrypy.log('Redirecting %sto: %s' % ({True: 'internal ', False: ''}[internal], url), 'TOOLS.REDIRECT') if internal: raise cherrypy.InternalRedirect(url) else: raise cherrypy.HTTPRedirect(url)
Example #13
Source File: _cpwsgi.py From opsbro with MIT License | 5 votes |
def __call__(self, environ, start_response): redirections = [] while True: environ = environ.copy() try: return self.nextapp(environ, start_response) except _cherrypy.InternalRedirect: ir = _sys.exc_info()[1] sn = environ.get('SCRIPT_NAME', '') path = environ.get('PATH_INFO', '') qs = environ.get('QUERY_STRING', '') # Add the *previous* path_info + qs to redirections. old_uri = sn + path if qs: old_uri += "?" + qs redirections.append(old_uri) if not self.recursive: # Check to see if the new URI has been redirected to # already new_uri = sn + ir.path if ir.query_string: new_uri += "?" + ir.query_string if new_uri in redirections: ir.request.close() raise RuntimeError("InternalRedirector visited the " "same URL twice: %r" % new_uri) # Munge the environment and try again. environ['REQUEST_METHOD'] = "GET" environ['PATH_INFO'] = ir.path environ['QUERY_STRING'] = ir.query_string environ['wsgi.input'] = BytesIO() environ['CONTENT_LENGTH'] = "0" environ['cherrypy.previous_request'] = ir.request
Example #14
Source File: _cprequest.py From cherrypy with BSD 3-Clause "New" or "Revised" License | 5 votes |
def run_hooks(cls, hooks): """Execute the indicated hooks, trapping errors. Hooks with ``.failsafe == True`` are guaranteed to run even if others at the same hookpoint fail. In this case, log the failure and proceed on to the next hook. The only way to stop all processing from one of these hooks is to raise a BaseException like SystemExit or KeyboardInterrupt and stop the whole server. """ assert isinstance(hooks, collections.abc.Iterator) quiet_errors = ( cherrypy.HTTPError, cherrypy.HTTPRedirect, cherrypy.InternalRedirect, ) safe = filter(operator.attrgetter('failsafe'), hooks) for hook in hooks: try: hook() except quiet_errors: cls.run_hooks(safe) raise except Exception: cherrypy.log(traceback=True, severity=40) cls.run_hooks(safe) raise
Example #15
Source File: _cpwsgi.py From cherrypy with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __call__(self, environ, start_response): redirections = [] while True: environ = environ.copy() try: return self.nextapp(environ, start_response) except _cherrypy.InternalRedirect: ir = _sys.exc_info()[1] sn = environ.get('SCRIPT_NAME', '') path = environ.get('PATH_INFO', '') qs = environ.get('QUERY_STRING', '') # Add the *previous* path_info + qs to redirections. old_uri = sn + path if qs: old_uri += '?' + qs redirections.append(old_uri) if not self.recursive: # Check to see if the new URI has been redirected to # already new_uri = sn + ir.path if ir.query_string: new_uri += '?' + ir.query_string if new_uri in redirections: ir.request.close() tmpl = ( 'InternalRedirector visited the same URL twice: %r' ) raise RuntimeError(tmpl % new_uri) # Munge the environment and try again. environ['REQUEST_METHOD'] = 'GET' environ['PATH_INFO'] = ir.path environ['QUERY_STRING'] = ir.query_string environ['wsgi.input'] = io.BytesIO() environ['CONTENT_LENGTH'] = '0' environ['cherrypy.previous_request'] = ir.request
Example #16
Source File: test_core.py From bazarr with GNU General Public License v3.0 | 4 votes |
def test_InternalRedirect(self): # InternalRedirect self.getPage('/internalredirect/') self.assertBody('hello') self.assertStatus(200) # Test passthrough self.getPage( '/internalredirect/petshop?user_id=Sir-not-appearing-in-this-film') self.assertBody('0 images for Sir-not-appearing-in-this-film') self.assertStatus(200) # Test args self.getPage('/internalredirect/petshop?user_id=parrot') self.assertBody('0 images for slug') self.assertStatus(200) # Test POST self.getPage('/internalredirect/petshop', method='POST', body='user_id=terrier') self.assertBody('0 images for fish') self.assertStatus(200) # Test ir before body read self.getPage('/internalredirect/early_ir', method='POST', body='arg=aha!') self.assertBody('Something went horribly wrong.') self.assertStatus(200) self.getPage('/internalredirect/secure') self.assertBody('Please log in') self.assertStatus(200) # Relative path in InternalRedirect. # Also tests request.prev. self.getPage('/internalredirect/relative?a=3&b=5') self.assertBody('a=3&b=5') self.assertStatus(200) # InternalRedirect on error self.getPage('/internalredirect/choke') self.assertStatus(200) self.assertBody('Something went horribly wrong.')
Example #17
Source File: test_core.py From Tautulli with GNU General Public License v3.0 | 4 votes |
def test_InternalRedirect(self): # InternalRedirect self.getPage('/internalredirect/') self.assertBody('hello') self.assertStatus(200) # Test passthrough self.getPage( '/internalredirect/petshop?user_id=Sir-not-appearing-in-this-film') self.assertBody('0 images for Sir-not-appearing-in-this-film') self.assertStatus(200) # Test args self.getPage('/internalredirect/petshop?user_id=parrot') self.assertBody('0 images for slug') self.assertStatus(200) # Test POST self.getPage('/internalredirect/petshop', method='POST', body='user_id=terrier') self.assertBody('0 images for fish') self.assertStatus(200) # Test ir before body read self.getPage('/internalredirect/early_ir', method='POST', body='arg=aha!') self.assertBody('Something went horribly wrong.') self.assertStatus(200) self.getPage('/internalredirect/secure') self.assertBody('Please log in') self.assertStatus(200) # Relative path in InternalRedirect. # Also tests request.prev. self.getPage('/internalredirect/relative?a=3&b=5') self.assertBody('a=3&b=5') self.assertStatus(200) # InternalRedirect on error self.getPage('/internalredirect/choke') self.assertStatus(200) self.assertBody('Something went horribly wrong.')
Example #18
Source File: test_core.py From cherrypy with BSD 3-Clause "New" or "Revised" License | 4 votes |
def test_InternalRedirect(self): # InternalRedirect self.getPage('/internalredirect/') self.assertBody('hello') self.assertStatus(200) # Test passthrough self.getPage( '/internalredirect/petshop?user_id=Sir-not-appearing-in-this-film') self.assertBody('0 images for Sir-not-appearing-in-this-film') self.assertStatus(200) # Test args self.getPage('/internalredirect/petshop?user_id=parrot') self.assertBody('0 images for slug') self.assertStatus(200) # Test POST self.getPage('/internalredirect/petshop', method='POST', body='user_id=terrier') self.assertBody('0 images for fish') self.assertStatus(200) # Test ir before body read self.getPage('/internalredirect/early_ir', method='POST', body='arg=aha!') self.assertBody('Something went horribly wrong.') self.assertStatus(200) self.getPage('/internalredirect/secure') self.assertBody('Please log in') self.assertStatus(200) # Relative path in InternalRedirect. # Also tests request.prev. self.getPage('/internalredirect/relative?a=3&b=5') self.assertBody('a=3&b=5') self.assertStatus(200) # InternalRedirect on error self.getPage('/internalredirect/choke') self.assertStatus(200) self.assertBody('Something went horribly wrong.')
Example #19
Source File: test_core.py From moviegrabber with GNU General Public License v3.0 | 4 votes |
def test_InternalRedirect(self): # InternalRedirect self.getPage("/internalredirect/") self.assertBody('hello') self.assertStatus(200) # Test passthrough self.getPage("/internalredirect/petshop?user_id=Sir-not-appearing-in-this-film") self.assertBody('0 images for Sir-not-appearing-in-this-film') self.assertStatus(200) # Test args self.getPage("/internalredirect/petshop?user_id=parrot") self.assertBody('0 images for slug') self.assertStatus(200) # Test POST self.getPage("/internalredirect/petshop", method="POST", body="user_id=terrier") self.assertBody('0 images for fish') self.assertStatus(200) # Test ir before body read self.getPage("/internalredirect/early_ir", method="POST", body="arg=aha!") self.assertBody("Something went horribly wrong.") self.assertStatus(200) self.getPage("/internalredirect/secure") self.assertBody('Please log in') self.assertStatus(200) # Relative path in InternalRedirect. # Also tests request.prev. self.getPage("/internalredirect/relative?a=3&b=5") self.assertBody("a=3&b=5") self.assertStatus(200) # InternalRedirect on error self.getPage("/internalredirect/choke") self.assertStatus(200) self.assertBody("Something went horribly wrong.")