def test_post_to_closet(): url = 'http://tankt.peermore.com:8080/closet/newtank' data = {'csrf_token': csrf, 'redir': 1} files = {'file': ('heg3.gif', open('test/heg3.gif', 'rb'), 'image/gif')} headers = {'cookie': cookie} response = requests.post(url, data=data, files=files, headers=headers, allow_redirects=False) assert response.status_code == 303 assert response.headers[ 'location'] == 'http://tankt.peermore.com:8080/bags/newtank/tiddlers/heg3.gif' response = requests.get(response.headers['location'], allow_redirects=False) assert response.status_code == 302 assert response.headers['location'].startswith( 'https://tank-binaries.s3.amazonaws.com/') requests_intercept.uninstall() response = requests.get(response.headers['location'], allow_redirects=False) assert response.status_code == 200 assert response.headers['content-type'] == 'image/gif' requests_intercept.install()
def setup_module(module): try: shutil.rmtree('indexdir') shutil.rmtree('store') except: pass app = load_app() def app_fn(): return app requests_intercept.install() wsgi_intercept.add_wsgi_intercept('tankt.peermore.com', 8080, app_fn) store = get_store(config) test_bag1 = Bag('newtank') try: store.delete(test_bag1) except StoreError: pass test_bag1.policy.accept = ['NONE'] store.put(test_bag1) module.environ = {'tiddlyweb.store': store, 'tiddlyweb.config': config} module.store = store module.cookie, module.csrf = establish_user_auth( config, store, 'tankt.peermore.com:8080', 'tester')
def setUp(self): requests_intercept.install() add_wsgi_intercept("httpbin.org", 80, self.get_app) logging.getLogger("requests").setLevel("ERROR") self.fake_target = fauxfactory.gen_ipaddr() self.service = HttpService(self.fake_target)
def setup_module(module): try: shutil.rmtree('indexdir') shutil.rmtree('store') except: pass app = load_app() def app_fn(): return app requests_intercept.install() wsgi_intercept.add_wsgi_intercept('tankt.peermore.com', 8080, app_fn) store = get_store(config) test_bag1 = Bag('newtank') try: store.delete(test_bag1) except StoreError: pass test_bag1.policy.accept = ['NONE'] store.put(test_bag1) module.environ = {'tiddlyweb.store': store, 'tiddlyweb.config': config} module.store = store module.cookie, module.csrf = establish_user_auth(config, store, 'tankt.peermore.com:8080', 'tester')
def intercept_too_many_targets(): targets = ['de_DE', 'es_ES'] app = get_configured_app(target_langs=targets) requests_intercept.install() add_wsgi_intercept(_INTERCEPT_HOST, _INTERCEPT_PORT, lambda: app) yield app remove_wsgi_intercept()
def wsgi_intercept_app(): """Creates WSGI app that receives input directly from requests via wsgi_intercept. This skips HTTP request to athana and can be used to test the tests""" from wsgi_intercept import requests_intercept, add_wsgi_intercept requests_intercept.install() app = make_app() add_wsgi_intercept(HOST, PORT, lambda: app) yield app requests_intercept.uninstall()
def webservice(mock_detector): """Mock object detection web service.""" app = ws.make_app(mock_detector) host, port = 'localhost', 8080 url = 'http://{0}:{1}/'.format(host, port) requests_intercept.install() icpt.add_wsgi_intercept(host, port, lambda: app) yield {'app': app, 'url': url} icpt.remove_wsgi_intercept()
def wsgi_intercept_app(): """Creates WSGI app that receives input directly from requests via wsgi_intercept. This skips HTTP request to athana and can be used to test the tests""" from wsgi_intercept import requests_intercept, add_wsgi_intercept requests_intercept.install() app = make_app() add_wsgi_intercept(HOST, PORT, lambda: app) yield app requests_intercept.uninstall()
def setUp(self): requests_intercept.install() add_wsgi_intercept("httpbin.org", 80, self.get_app) logging.getLogger("requests").setLevel("ERROR") self.fake_target = fauxfactory.gen_ipaddr() self.service = XpathService(self.fake_target) self.service.swallow_exceptions = False self.html_service = HtmlXpathService(self.fake_target) self.html_service.swallow_exceptions = False
def setup_module(module): module.testbed = data_setup() requests_intercept.install() def app_fn(): return app wsgi_intercept.add_wsgi_intercept('localhost', 8000, app_fn) module.user_alpha = users.User(email='*****@*****.**')
def url_prefix(request): host = 'httpbin.org' port = 80 requests_intercept.install() add_wsgi_intercept(host, port, lambda: httpbin.app) @request.addfinalizer def fin(): requests_intercept.uninstall() return 'http://{0}:{1}/'.format(host, port)
def setup(): authorization._ENABLE_TEST = True authorization.APP_ID = TEST_APP_ID authorization.APP_KEY = TEST_APP_KEY authorization.MASTER_KEY = TEST_MASTER_KEY requests_intercept.install() add_wsgi_intercept(host, port, make_app) @engine.cloud_func def hello(**params): return 'hello'
def fixture_server(request): # Install the WSGI interception layer. install() # Enable the WSGI interception layer. add_wsgi_intercept(HOST, PORT, lambda: flask.current_app) # Add a finalizer to remove the interception layer. def finalize(): remove_wsgi_intercept(HOST, PORT) uninstall() request.addfinalizer(finalize)
def fixture_server(request): # Install the WSGI interception layer. install() # Enable the WSGI interception layer. add_wsgi_intercept(HOST, PORT, lambda: flask.current_app) # Add a finalizer to remove the interception layer. def finalize(): remove_wsgi_intercept(HOST, PORT) uninstall() request.addfinalizer(finalize)
def setup(): leancloud.init(TEST_APP_ID, TEST_APP_KEY) authorization._ENABLE_TEST = True authorization.APP_ID = TEST_APP_ID authorization.APP_KEY = TEST_APP_KEY authorization.MASTER_KEY = TEST_MASTER_KEY requests_intercept.install() add_wsgi_intercept(host, port, make_app) @engine.define def hello(**params): return 'hello'
def test_redirect_region(): if client.REGION == 'US': # US region server doesn't support app router now return # setup old_app_router = client.app_router client.app_router = AppRouter('test_app_id') requests_intercept.install() def fake_app_router(environ, start_response): assert environ['PATH_INFO'] == '/1/route' start_response('200 OK', [('Content-Type', 'application/json')]) return [ json.dumps({ 'api_server': 'fake-redirect-server', 'ttl': 3600, }).encode('utf-8') ] host, port = 'app-router.leancloud.cn', 443 add_wsgi_intercept(host, port, lambda: fake_app_router) def fake_redirect_server(environ, start_response): start_response('307', [('Content-Type', 'application/json')]) return [ json.dumps({ 'api_server': 'fake-api-server', 'ttl': 3600, }).encode('utf-8') ] host, port = 'fake-redirect-server', 443 add_wsgi_intercept(host, port, lambda: fake_redirect_server) def fake_api_server(environ, start_response): start_response('200', [('Content-Type', 'application/json')]) return [json.dumps({ 'result': 42, }).encode('utf-8')] host, port = 'fake-api-server', 443 add_wsgi_intercept(host, port, lambda: fake_api_server) # test assert client.get('/redirectme').json()['result'] == 42 # teardown client.app_router = old_app_router requests_intercept.uninstall()
def setupRest(self): from pybble.app import make_cfg_app super(WebTC,self).setupRest() global main_app app = make_cfg_app() main_app = SubdomainDispatcher(app) if not skip_httpclient: http_client_intercept.install() if not skip_httplib2: httplib2_intercept.install() if not skip_requests: requests_intercept.install() if not skip_urllib: urllib_intercept.install_opener()
def test_redirect_region(): if client.REGION == 'US': # US region server doesn't support app router now return # setup old_app_router = client.app_router client.app_router = AppRouter('test_app_id') requests_intercept.install() def fake_app_router(environ, start_response): assert environ['PATH_INFO'] == '/1/route' start_response('200 OK', [('Content-Type', 'application/json')]) return [json.dumps({ 'api_server': 'fake-redirect-server', 'ttl': 3600, }).encode('utf-8')] host, port = 'app-router.leancloud.cn', 443 add_wsgi_intercept(host, port, lambda: fake_app_router) def fake_redirect_server(environ, start_response): start_response('307', [('Content-Type', 'application/json')]) return [json.dumps({ 'api_server': 'fake-api-server', 'ttl': 3600, }).encode('utf-8')] host, port = 'fake-redirect-server', 443 add_wsgi_intercept(host, port, lambda: fake_redirect_server) def fake_api_server(environ, start_response): start_response('200', [('Content-Type', 'application/json')]) return [json.dumps({ 'result': 42, }).encode('utf-8')] host, port = 'fake-api-server', 443 add_wsgi_intercept(host, port, lambda: fake_api_server) # test assert client.get('/redirectme').json()['result'] == 42 # teardown client.app_router = old_app_router requests_intercept.uninstall()
def setup(): leancloud.client.USE_MASTER_KEY = None leancloud.client.APP_ID = None leancloud.client.APP_KEY = None leancloud.client.MASTER_KEY = None leancloud.init(TEST_APP_ID, TEST_APP_KEY, TEST_MASTER_KEY) authorization._ENABLE_TEST = True authorization.APP_ID = TEST_APP_ID authorization.APP_KEY = TEST_APP_KEY authorization.MASTER_KEY = TEST_MASTER_KEY requests_intercept.install() add_wsgi_intercept(host, port, make_app) @engine.define def hello(**params): return 'hello'
def before_all(context): ### Take a TestRunner hostage. from django.test.simple import DjangoTestSuiteRunner # We'll use thise later to frog-march Django through the motions # of setting up and tearing down the test environment, including # test databases. importer.install(check_options=True) context.runner = DjangoTestSuiteRunner() ## If you use South for migrations, uncomment this to monkeypatch ## syncdb to get migrations to run. from south.management.commands import patch_for_test_db_setup patch_for_test_db_setup() from wsgi_intercept import requests_intercept import wsgi_intercept from django.core.handlers.wsgi import WSGIHandler from django.conf import settings host = context.host = '{{ cookiecutter.domain_name }}' port = context.port = getattr(settings, 'TESTING_INTERCEPT_PORT', 80) # NOTE: Nothing is actually listening on this port. wsgi_intercept # monkeypatches the networking internals to use a fake socket when # connecting to this port. requests_intercept.install() wsgi_intercept.add_wsgi_intercept(host, port, WSGIHandler) def browser_url(url): """Create a URL for the virtual WSGI server. e.g context.browser_url('/'), context.browser_url(reverse('my_view')) """ return urlparse.urljoin('http://%s:%d/' % (host, port), url) context.browser_url = browser_url context.runner.setup_test_environment() context.old_db_config = context.runner.setup_databases() from django.core.management import call_command call_command('createsuperuser', interactive=False, username="******", email="*****@*****.**") call_command('migrate')
def url_prefix(request, web_engine): # https://cherrypy.readthedocs.org/en/latest/deploy.html # § Embedding into another WSGI framework cherrypy.config.update({'environment': 'embedded', 'global': {'request.throw_errors': True}}) cherrypy.server.unsubscribe() # disables built-in HTTP server cherrypy.engine.start() # intercept requests host = 'busbus.invalid' port = 8080 requests_intercept.install() add_wsgi_intercept(host, port, lambda: cherrypy.tree.mount(web_engine)) @request.addfinalizer def fin(): requests_intercept.uninstall() cherrypy.engine.exit() return 'http://{0}:{1}/'.format(host, port)
def intercept_populated(): files = [ { 'name': 'file.json', 'data': json.dumps({ 'foo': 'bar', 'faz': 'baz' }), }, { 'name': '___foo___file-utf8.json', 'data': json.dumps({'foo': '\u1234'}), }, ] targets = ['de_DE'] app = get_configured_app(files=files, target_langs=targets) requests_intercept.install() add_wsgi_intercept(_INTERCEPT_HOST, _INTERCEPT_PORT, lambda: app) yield app remove_wsgi_intercept()
def test_post_to_closet(): url = 'http://tankt.peermore.com:8080/closet/newtank' data = {'csrf_token': csrf, 'redir': 1} files = {'file': ('heg3.gif', open('test/heg3.gif', 'rb'), 'image/gif')} headers = {'cookie': cookie} response = requests.post(url, data=data, files=files, headers=headers, allow_redirects=False) assert response.status_code == 303 assert response.headers['location'] == 'http://tankt.peermore.com:8080/bags/newtank/tiddlers/heg3.gif' response = requests.get(response.headers['location'], allow_redirects=False) assert response.status_code == 302 assert response.headers['location'].startswith( 'https://tank-binaries.s3.amazonaws.com/') requests_intercept.uninstall() response = requests.get(response.headers['location'], allow_redirects=False) assert response.status_code == 200 assert response.headers['content-type'] == 'image/gif' requests_intercept.install()
def setup(): leancloud.client.USE_MASTER_KEY = None leancloud.client.APP_ID = None leancloud.client.APP_KEY = None leancloud.client.MASTER_KEY = None leancloud.init(TEST_APP_ID, TEST_APP_KEY, TEST_MASTER_KEY, TEST_HOOK_KEY) authorization._ENABLE_TEST = True authorization.APP_ID = TEST_APP_ID authorization.APP_KEY = TEST_APP_KEY authorization.MASTER_KEY = TEST_MASTER_KEY authorization.HOOK_KEY = TEST_HOOK_KEY requests_intercept.install() add_wsgi_intercept(host, port, lambda: engine) @engine.define def hello(**params): return 'hello' @engine.define('fooBarBaz') def foo_bar_baz(**params): return 'yes'
def setup(): leancloud.client.USE_MASTER_KEY = None leancloud.client.APP_ID = None leancloud.client.APP_KEY = None leancloud.client.MASTER_KEY = None leancloud.init(TEST_APP_ID, TEST_APP_KEY, TEST_MASTER_KEY, TEST_HOOK_KEY) authorization._ENABLE_TEST = True authorization.APP_ID = TEST_APP_ID authorization.APP_KEY = TEST_APP_KEY authorization.MASTER_KEY = TEST_MASTER_KEY authorization.HOOK_KEY = TEST_HOOK_KEY requests_intercept.install() add_wsgi_intercept(host, port, lambda: engine) @engine.define def hello(**params): return 'hello' @engine.define('fooBarBaz') def foo_bar_baz(**params): return 'yes'
def url_prefix(request, web_engine): # https://cherrypy.readthedocs.org/en/latest/deploy.html # § Embedding into another WSGI framework cherrypy.config.update({ 'environment': 'embedded', 'global': { 'request.throw_errors': True } }) cherrypy.server.unsubscribe() # disables built-in HTTP server cherrypy.engine.start() # intercept requests host = 'busbus.invalid' port = 8080 requests_intercept.install() add_wsgi_intercept(host, port, lambda: cherrypy.tree.mount(web_engine)) @request.addfinalizer def fin(): requests_intercept.uninstall() cherrypy.engine.exit() return 'http://{0}:{1}/'.format(host, port)
from wsgi_intercept import requests_intercept, add_wsgi_intercept from wsgi_proxy import WSGIProxyApplication from fibpro.userstore import UserStoreServer, UserStoreClient from fibpro.reqtool.record import RecordingProxy def intercept(host, port, app): add_wsgi_intercept(host, port, lambda: app) requests_intercept.install() proxy = RecordingProxy(UserStoreServer(register=False).app()) # proxy = RecordingProxy(WSGIProxyApplication()) intercept("127.0.0.1", 9003, proxy) UserStoreClient().get_user("username") print proxy.session[0][0].__dict__ print proxy.session[0][1].__dict__
def setup(): requests_intercept.install()
def setup(): requests_intercept.install()
from wsgi_intercept import requests_intercept, add_wsgi_intercept from wsgi_proxy import WSGIProxyApplication from fibpro.userstore import UserStoreServer, UserStoreClient from fibpro.reqtool.record import RecordingProxy def intercept(host, port, app): add_wsgi_intercept(host, port, lambda: app) requests_intercept.install() proxy = RecordingProxy(UserStoreServer(register=False).app()) #proxy = RecordingProxy(WSGIProxyApplication()) intercept('127.0.0.1', 9003, proxy) UserStoreClient().get_user("username") print proxy.session[0][0].__dict__ print proxy.session[0][1].__dict__
def init_test_server(): requests_intercept.install() root = fred_webadmin.controller.adif.prepare_root() wsgiApp = cherrypy.tree.mount(root) # Redirect HTTP requests. add_wsgi_intercept('localhost', 8080, lambda: wsgiApp)
def setUp(self): # Install the requests library intercept. requests_intercept.install() # Initialize the intercepts for archive and publishing. install_intercept()
def wsgi(): requests_intercept.install() add_wsgi_intercept(host, port, bottle.default_app) yield requests_intercept.uninstall()
def intercept(): app = get_configured_app() requests_intercept.install() add_wsgi_intercept(_INTERCEPT_HOST, _INTERCEPT_PORT, lambda: app) yield app remove_wsgi_intercept()
def setUp(self): # Install the requests library intercept. requests_intercept.install() # Initialize the intercepts for archive and publishing. install_intercept()
def install(port=80): requests_intercept.install() wsgi_intercept.add_wsgi_intercept( 'some_hopefully_nonexistant_domain', port, wsgi_app.create_fn)
def start_mock(self): wsgi_intercept.add_wsgi_intercept(self._host, settings.PORT, lambda: self.appengine_execute) requests_intercept.install()