예제 #1
0
    def test_add_slash_redirect(self):
        app = Application({})
        factory = lambda *args: type('Resource', (), {'GET': None})
        app.mount_resource('test', factory, '/some/dir', add_slash=True)

        # Should not redirect
        next_handler = lambda app_, request_: 'NEXT'
        request = app.make_blank_request('/some/dir/')
        self.assertEqual(resource_finder(app, request, next_handler), 'NEXT')

        # Should redirect
        request = app.make_blank_request('/some/dir')
        try:
            resource_finder(app, request, next_handler)
        except Exception as exc:
            self.assertTrue(exc.status.startswith('3'))
            self.assertTrue(exc.location.endswith('/some/dir/'))
예제 #2
0
 def setUp(self):
     app = Application({})
     app.mount_resource('test', TestResource, '/test')
     self.app = app
예제 #3
0
    # Make a request to the root of the example app after it's created.
    print('Example request and response:\n')
    request = event.app.make_blank_request('/')
    response = event.app.handle_request(request)
    print(request, response, sep='\n\n')


if __name__ == '__main__':
    settings = {
        'debug': True,
        'tangled.app.on_created': [on_created],
        'tangled.app.defer_created': True,
    }

    app = Application(settings)
    app.mount_resource('home', Home, '/')

    # Greet user with "Hello" by default. The user's name must be passed
    # as a URL arg. A different greeting can be passed as the greeting
    # query parameter.
    app.mount_resource('hello', Hello, '/hello/<name>')

    # Greet with a specific greeting. Both the user's name and the
    # greeting must be passed as URL args.
    app.mount_resource('greet', Hello, '/greet/<name>/<greeting>')

    # Fire on-created event to initiate the example request.
    app.created()

    server = make_server('0.0.0.0', 6666, app)
    server.serve_forever()
예제 #4
0
 def setUp(self):
     app = Application('tangled.web.tests:test.ini')
     app.mount_resource('user', UserResource, '/users/<id>')
     self.app = TestApp(app)
     self._original_data = copy.deepcopy(Users.data)
예제 #5
0
 def setUp(self):
     app = Application({})
     app.mount_resource('test', TestResource, '/test')
     self.app = app
예제 #6
0
from wsgiref.simple_server import make_server

from tangled.web import Application, Resource


class Hello(Resource):

    def GET(self):
        if 'name' in self.urlvars:
            content = 'Hello, {name}'.format(**self.urlvars)
        else:
            content = 'Hello'
        return content


if __name__ == '__main__':
    settings = {
        'debug': True,
    }
    app = Application(settings)
    app.mount_resource('hello', Hello, '/')
    app.mount_resource('hello_name', Hello, '/<name>')
    server = make_server('0.0.0.0', 6666, app)
    server.serve_forever()
예제 #7
0
 def setUp(self):
     app = Application({})
     app.mount_resource('home', TestResource, '/')
     app.mount_resource('catch-all-single-segment-paths', TestResource, '/<x>', methods='GET')
     app.mount_resource('a', TestResource, '/a')
     app.mount_resource('b', TestResource, '/b/')
     app.mount_resource('abc', TestResource, '/a/b/c')
     app.mount_resource('abc_any', TestResource, '/<a>/<b>/<c>')
     app.mount_resource('xyz', TestResource, '/x/<y>/z', methods='GET')
     app.mount_resource('xkz', TestResource, '/x/k/z')
     app.mount_resource('y_get', TestResource, '/y', methods='GET')
     app.mount_resource('y_post', TestResource, '/y', methods='POST')
     app.mount_resource('cached', TestResource, '/cached')
     self.app = app
예제 #8
0
def make_app(settings):
    """Configure ${package_name}."""
    app = Application(settings)
    app.mount_resource('home', '.resources:Hello', '/', methods='GET')
    app.mount_resource('hello', '.resources:Hello', '/<name>', methods='GET')
    return app