예제 #1
0
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()
예제 #2
0
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')
예제 #3
0
    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)
예제 #4
0
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()
예제 #6
0
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()
예제 #7
0
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()
예제 #8
0
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()
예제 #9
0
    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
예제 #10
0
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)
예제 #12
0
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'
예제 #13
0
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)
예제 #14
0
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)
예제 #15
0
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'
예제 #16
0
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()
예제 #17
0
파일: base.py 프로젝트: smurfix/pybble
	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()
예제 #18
0
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()
예제 #19
0
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')
예제 #21
0
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)
예제 #22
0
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()
예제 #23
0
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()
예제 #24
0
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'
예제 #25
0
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'
예제 #26
0
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)
예제 #27
0
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__
예제 #28
0
def setup():
    requests_intercept.install()
예제 #29
0
def setup():
    requests_intercept.install()
예제 #30
0
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__
예제 #31
0
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)
예제 #32
0
 def setUp(self):
     # Install the requests library intercept.
     requests_intercept.install()
     # Initialize the intercepts for archive and publishing.
     install_intercept()
예제 #33
0
def wsgi():
    requests_intercept.install()
    add_wsgi_intercept(host, port, bottle.default_app)
    yield
    requests_intercept.uninstall()
예제 #34
0
def intercept():
    app = get_configured_app()
    requests_intercept.install()
    add_wsgi_intercept(_INTERCEPT_HOST, _INTERCEPT_PORT, lambda: app)
    yield app
    remove_wsgi_intercept()
예제 #35
0
 def setUp(self):
     # Install the requests library intercept.
     requests_intercept.install()
     # Initialize the intercepts for archive and publishing.
     install_intercept()
예제 #36
0
def install(port=80):
    requests_intercept.install()
    wsgi_intercept.add_wsgi_intercept(
            'some_hopefully_nonexistant_domain',
            port, wsgi_app.create_fn)
예제 #37
0
파일: aetest.py 프로젝트: zbing3/appengine
 def start_mock(self):
     wsgi_intercept.add_wsgi_intercept(self._host, settings.PORT, lambda: self.appengine_execute)
     requests_intercept.install()