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']
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']
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'
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'
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"), ])
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
def setUp(self): super().setUp() self.routes( only=[ Get("/lazy-props", "TestController@lazy_view"), Get("/lazy-props-request", "TestController@lazy_view_with_request"), ] )
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')
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'
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
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]+)\\/$'
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')
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)
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
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]+)\\/$'
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]+)\/$')
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'
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])
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))
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)
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))
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
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})
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
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]))
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)
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'
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')