Repository URL to install this package:
Version:
4.1.87 ▾
|
contego
/
home
/
tvault
/
.virtenv
/
lib
/
python2.7
/
site-packages
/
wsgi_intercept
/
tests
/
install.py
|
---|
import os
import pytest
import wsgi_intercept
skipnetwork = pytest.mark.skipif(os.environ.get(
'WSGI_INTERCEPT_SKIP_NETWORK', 'False').lower() == 'true',
reason="skip network requested"
)
class BaseInstalledApp(object):
def __init__(self, app, host, port=80, script_name='',
install=None, uninstall=None, proxy=None):
self.app = app
self.host = host
self.port = port
self.script_name = script_name
self._install = install or (lambda: None)
self._uninstall = uninstall or (lambda: None)
self._hits = 0
self._internals = {}
self._proxy = proxy
def __call__(self, environ, start_response):
self._hits += 1
self._internals = environ
return self.app(environ, start_response)
def success(self):
return self._hits > 0
def get_internals(self):
return self._internals
def install_wsgi_intercept(self):
wsgi_intercept.add_wsgi_intercept(
self.host, self.port, self.factory, script_name=self.script_name)
def uninstall_wsgi_intercept(self):
wsgi_intercept.remove_wsgi_intercept(self.host, self.port)
def install(self):
if self._proxy:
os.environ['http_proxy'] = self._proxy
self._install()
self.install_wsgi_intercept()
def uninstall(self):
if self._proxy:
del os.environ['http_proxy']
self.uninstall_wsgi_intercept()
self._uninstall()
def factory(self):
return self
def __enter__(self):
self.install()
return self
def __exit__(self, *args, **kwargs):
self.uninstall()
def installer_class(module=None, install=None, uninstall=None):
if module:
install = install or getattr(module, 'install', None)
uninstall = uninstall or getattr(module, 'uninstall', None)
class InstalledApp(BaseInstalledApp):
def __init__(self, app, host, port=80, script_name='', proxy=None):
BaseInstalledApp.__init__(
self, app=app, host=host, port=port, script_name=script_name,
install=install, uninstall=uninstall, proxy=proxy)
return InstalledApp