Ejemplo n.º 1
0
    def test_group_adds_methods(self):
        routes = RouteGroup([
            Get().route('/test/1', 'TestController@show'),
            Get().route('/test/2', 'TestController@show')
        ], add_methods=['OPTIONS'])

        assert routes[0].method_type == ['GET', 'OPTIONS']
Ejemplo n.º 2
0
    def test_group_route_sets_domain(self):
        routes = RouteGroup([
            Get().route('/test/1', 'TestController@show'),
            Get().route('/test/2', 'TestController@show')
        ], domain=['www'])

        assert routes[0].required_domain == ['www']
Ejemplo n.º 3
0
    def test_group_route_sets_prefix(self):
        routes = RouteGroup([
            Get().route('/test/1', 'TestController@show'),
            Get().route('/test/2', 'TestController@show')
        ], prefix='/dashboard')

        assert routes[0].route_url == '/dashboard/test/1'
Ejemplo n.º 4
0
 def test_group_route_sets_name(self):
     look_for = []
     routes = RouteGroup([
         Get().route('/test/1', 'TestController@show').name('create'),
         Get().route('/test/2', 'TestController@show').name('edit')
     ],
                         name='post.')
    def test_request_gets_input_from_container(self):
        container = App()
        container.bind('Application', application)
        container.bind('Providers', providers)
        container.bind('WSGI', object)
        container.bind('Environ', wsgi_request)

        for provider in container.make('Providers').PROVIDERS:
            container.resolve(provider().load_app(container).register)

        container.bind('Response', 'test')
        container.bind('WebRoutes', [
            Get().route('url', None),
            Get().route('url/', None),
            Get().route('url/@firstname', None),
        ])

        container.bind('Response', 'Route not found. Error 404')

        for provider in container.make('Providers').PROVIDERS:
            located_provider = provider().load_app(container)

            container.resolve(provider().load_app(container).boot)

        assert container.make('Request').input('application') == 'Masonite'
        assert container.make('Request').all() == {'application': 'Masonite'}
        container.make('Request').environ['REQUEST_METHOD'] = 'POST'
        assert container.make('Request').environ['REQUEST_METHOD'] == 'POST'
        assert container.make('Request').input('application') == 'Masonite'
Ejemplo n.º 6
0
    def test_request_redirection(self):
        app = App()
        app.bind('Request', self.request)
        app.bind('WebRoutes', [
            Get('/test/url', 'TestController@show').name('test.url'),
            Get('/test/url/@id', 'TestController@testing').name('test.id'),
            Get('/test/url/object', TestController.show).name('test.object')
        ])
        request = app.make('Request').load_app(app)

        self.assertEqual(
            request.redirect('/test/url/@id', {
                'id': 1
            }).redirect_url, '/test/url/1')
        request.redirect_url = None
        self.assertEqual(
            request.redirect(name='test.url').redirect_url, '/test/url')
        request.redirect_url = None
        self.assertEqual(
            request.redirect(name='test.id', params={
                'id': 1
            }).redirect_url, '/test/url/1')
        request.redirect_url = None
        self.assertEqual(
            request.redirect(controller='TestController@show').redirect_url,
            '/test/url')
        request.redirect_url = None
        self.assertEqual(
            request.redirect(controller=TestController.show).redirect_url,
            '/test/url/object')
        request.redirect_url = None
        self.assertEqual(
            request.redirect('some/url').redirect_url, '/some/url')
 def setUp(self):
     super().setUp()
     self.routes(only=[
         Get("/app", "InertiaController@inertia"),
         Get("/helloworld", "InertiaController@helloworld"),
         Get("/custom-id", "TestController@custom_id"),
     ])
Ejemplo n.º 8
0
    def test_group_route_sets_name_for_none_route(self):
        routes = RouteGroup([
            Get().route('/test/1', 'TestController@show').name('create'),
            Get().route('/test/2', 'TestController@show')
        ], name='post.')

        assert routes[0].named_route == 'post.create'
        assert routes[1].named_route == None
Ejemplo n.º 9
0
 def setUp(self):
     super().setUp()
     self.routes(
         only=[
             Get("/lazy-props", "TestController@lazy_view"),
             Get("/lazy-props-request", "TestController@lazy_view_with_request"),
         ]
     )
Ejemplo n.º 10
0
    def test_group_route(self):
        routes = group('/example', [
            Get().route('/test/1', 'TestController@show'),
            Get().route('/test/2', 'TestController@show')
        ])

        self.assertEqual(routes[0].route_url, '/example/test/1')
        self.assertEqual(routes[1].route_url, '/example/test/2')
Ejemplo n.º 11
0
    def test_group_route(self):
        routes = group('/example', [
            Get().route('/test/1', 'TestController@show'),
            Get().route('/test/2', 'TestController@show')
        ])

        assert routes[0].route_url == '/example/test/1'
        assert routes[1].route_url == '/example/test/2'
Ejemplo n.º 12
0
    def test_method_type_has_required_subdomain(self):
        get = Get().domain('test')
        post = Get().domain('test')

        self.request.environ['HTTP_HOST'] = 'test.localhost:8000'

        get.request = post.request = self.request

        assert get.has_required_domain() == True
        assert post.has_required_domain() == True
Ejemplo n.º 13
0
    def test_compile_route_to_regex(self):
        assert self.route.compile_route_to_regex(Get().route('test/route', None)) == '^test\\/route\\/$'
        assert self.route.compile_route_to_regex(Get().route(
            'test/@route', None)) == '^test\\/([\\w.-]+)\\/$'

        assert self.route.compile_route_to_regex(Get().route(
            'test/@route:int', None)) == '^test\\/(\\d+)\\/$'

        assert self.route.compile_route_to_regex(Get().route(
            'test/@route:string', None)) == '^test\\/([a-zA-Z]+)\\/$'
Ejemplo n.º 14
0
    def test_request_route_returns_full_url(self):
        app = App()
        app.bind('Request', self.request)
        app.bind('WebRoutes', [
            Get('/test/url', 'TestController@show').name('test.url'),
            Get('/test/url/@id', 'TestController@show').name('test.id')
        ])
        request = app.make('Request').load_app(app)

        self.assertEqual(request.route('test.url', full=True),
                         'http://localhost:8000/test/url')
Ejemplo n.º 15
0
    def test_route_exists(self):
        app = App()
        app.bind('Request', self.request)
        app.bind('WebRoutes', [
            Get('/test/url', 'TestController@show').name('test.url'),
            Get('/test/url/@id', 'TestController@show').name('test.id')
        ])
        request = app.make('Request').load_app(app)

        self.assertEqual(request.route_exists('/test/url'), True)
        self.assertEqual(request.route_exists('/test/Not'), False)
Ejemplo n.º 16
0
def test_method_type_has_required_subdomain():
    get = Get().domain('test')
    post = Get().domain('test')

    REQUEST.environ['HTTP_HOST'] = 'test.localhost:8000'

    get.request = REQUEST
    post.request = REQUEST

    assert get.has_required_domain() == True
    assert post.has_required_domain() == True
Ejemplo n.º 17
0
def test_compile_route_to_regex():
    assert ROUTE.compile_route_to_regex(Get().route(
        'test/route', None)) == '^test\\/route\\/$'
    assert ROUTE.compile_route_to_regex(Get().route(
        'test/@route', None)) == '^test\\/(\\w+)\\/$'

    assert ROUTE.compile_route_to_regex(Get().route(
        'test/@route:int', None)) == '^test\\/(\\d+)\\/$'

    assert ROUTE.compile_route_to_regex(Get().route(
        'test/@route:string', None)) == '^test\\/([a-zA-Z]+)\\/$'
Ejemplo n.º 18
0
    def test_compile_route_to_regex(self):
        get_route = Get().route('test/route', None)
        self.assertEqual(get_route.compile_route_to_regex(), r'^\/test\/route\/$')

        get_route = Get().route('test/@route', None)
        self.assertEqual(get_route.compile_route_to_regex(), r'^\/test\/([\w.-]+)\/$')

        get_route = Get().route('test/@route:int', None)
        self.assertEqual(get_route.compile_route_to_regex(), r'^\/test\/(\d+)\/$')

        get_route = Get().route('test/@route:string', None)
        self.assertEqual(get_route.compile_route_to_regex(), r'^\/test\/([a-zA-Z]+)\/$')
Ejemplo n.º 19
0
    def test_request_route_returns_url_without_passing_args_with_current_param(
            self):
        app = App()
        app.bind('Request', self.request)
        app.bind('WebRoutes', [
            Get('/test/url', 'TestController@show').name('test.url'),
            Get('/test/url/@id', 'TestController@show').name('test.id')
        ])
        request = app.make('Request').load_app(app)
        request.url_params = {'id': 1}

        assert request.route('test.id') == '/test/url/1'
Ejemplo n.º 20
0
    def setUp(self):
        super().setUp()
        self.routes(only=[
            Get().route('/', 'TestController@show').middleware('test'),
            Get().route('/test', 'TestController@show').middleware(
                'throttle:1,2')
        ])

        self.withRouteMiddleware({
            'test': MiddlewareTest,
            'throttle': MiddlewareValueTest
        }).withHttpMiddleware([MiddlewareHttpTest])
Ejemplo n.º 21
0
    def test_route_can_add_compilers(self):
        assert self.route.compile_route_to_regex(Get().route(
            'test/@route:int', None)) == '^test\\/(\\d+)\\/$'

        self.route.compile('year', r'[0-9]{4}')

        assert self.route.compile_route_to_regex(Get().route(
            'test/@route:year', None)) == '^test\\/[0-9]{4}\\/$'

        with pytest.raises(InvalidRouteCompileException):
            self.route.compile_route_to_regex(Get().route(
                'test/@route:slug', None))
Ejemplo n.º 22
0
    def test_route_can_add_compilers(self):
        get_route = Get().route('test/@route:int', None)
        self.assertEqual(get_route.compile_route_to_regex(), r'^\/test\/(\d+)\/$')

        self.route.compile('year', r'[0-9]{4}')

        get_route = Get().route('test/@route:year', None)

        self.assertEqual(get_route.compile_route_to_regex(), r'^\/test\/[0-9]{4}\/$')

        with self.assertRaises(InvalidRouteCompileException):
            get_route = Get().route('test/@route:none', None)
            create_matchurl('/test/1', get_route)
Ejemplo n.º 23
0
    def test_controller_that_returns_a_view(self):
        self.app.make('Route').url = '/view'
        self.app.bind('WebRoutes', [Get('/view', ControllerTest.test)])
        self.provider.boot(self.app.make('Route'), self.app.make('Request'),
                           self.app.make(Response))

        self.assertEqual(self.app.make('Response'), 'test')

        self.app.make('Route').url = '/view/'
        self.app.bind('WebRoutes', [Get('/view', ControllerTest.test)])

        self.provider.boot(self.app.make('Route'), self.app.make('Request'),
                           self.app.make(Response))
Ejemplo n.º 24
0
def test_method_type_has_required_subdomain_with_asterick():
    container = TestSuite().create_container()
    request = container.container.make('Request')

    request.environ['HTTP_HOST'] = 'test.localhost:8000'

    get = Get().domain('*')
    post = Get().domain('*')

    get.request = request
    post.request = request

    assert get.has_required_domain() == True
    assert post.has_required_domain() == True
Ejemplo n.º 25
0
    def test_is_named_route(self):
        app = App()
        app.bind('Request', self.request)
        app.bind('WebRoutes', [
            Get('/test/url', 'TestController@show').name('test.url'),
            Get('/test/url/@id', 'TestController@show').name('test.id')
        ])
        request = app.make('Request').load_app(app)

        request.path = '/test/url'
        assert request.is_named_route('test.url')

        request.path = '/test/url/1'
        assert request.is_named_route('test.id', {'id': 1})
Ejemplo n.º 26
0
    def test_group_route_sets_middleware(self):
        routes = RouteGroup([
            Get().route('/test/1', 'TestController@show').middleware('another'),
            Get().route('/test/2', 'TestController@show'),
            RouteGroup([
                Get().route('/test/3', 'TestController@show'),
                Get().route('/test/4', 'TestController@show')
            ], middleware=('test', 'test2'))
        ], middleware=('auth', 'user'))

        assert isinstance(routes, list)
        assert ['another', 'auth', 'user'] == routes[0].list_middleware
        assert ['auth', 'user'] == routes[1].list_middleware
        assert ['test', 'test2', 'auth', 'user'] == routes[2].list_middleware
Ejemplo n.º 27
0
    def test_request_route_returns_url(self):
        app = App()
        app.bind('Request', self.request)
        app.bind('WebRoutes', [
            Get('/test/url', 'TestController@show').name('test.url'),
            Get('/test/url/@id', 'TestController@show').name('test.id')
        ])
        request = app.make('Request').load_app(app)

        self.assertEqual(request.route('test.url'), '/test/url')
        self.assertEqual(request.route('test.id', {'id': 1}), '/test/url/1')
        self.assertEqual(request.route('test.id', [1]), '/test/url/1')

        with self.assertRaises(RouteException):
            self.assertTrue(request.route('not.exists', [1]))
Ejemplo n.º 28
0
    def test_route_can_add_compilers(self):
        get_route = Get().route('test/@route:int', None)
        assert get_route.compile_route_to_regex(
            self.route) == r'^test\/(\d+)\/$'

        self.route.compile('year', r'[0-9]{4}')

        get_route = Get().route('test/@route:year', None)

        assert get_route.compile_route_to_regex(
            self.route) == r'^test\/[0-9]{4}\/$'

        get_route = Get().route('test/@route:slug', None)
        with pytest.raises(InvalidRouteCompileException):
            get_route.compile_route_to_regex(self.route)
Ejemplo n.º 29
0
def test_request_sets_subdomain_on_get():

    container = TestSuite().create_container()
    request = container.container.make('Request')

    request.environ['HTTP_HOST'] = 'test.localhost:8000'

    get = Get().domain('*')
    post = Get().domain('*')

    get.request = request
    post.request = request

    get.has_required_domain()
    assert request.param('subdomain') == 'test'
Ejemplo n.º 30
0
    def test_can_call_container_with_annotations_from_variable(self):
        request = Request(generate_wsgi())

        self.app.bind('Request', request)
        self.app.bind('Get', Get().route('url', None))

        assert self.app.resolve(ContainerTest().testboot) == self.app.make('Request')