def test_custom_method_name(self):
     self.app.mount_resource(
         'my_method', TestResource, '/my_method', method_name='my_method')
     request = self.app.make_blank_request('/my_method')
     handlers.resource_finder(self.app, request, lambda a, r: None)
     self.assertTrue(hasattr(request, 'resource'))
     self.assertEqual(request.resource_method, 'my_method')
 def test_resource_finder(self):
     next_handler = lambda app, req: setattr(req, 'test_attr', app)
     request = self.app.make_blank_request('/test')
     handlers.resource_finder(self.app, request, next_handler)
     self.assertTrue(hasattr(request, 'resource'))
     self.assertTrue(hasattr(request, 'test_attr'))
     self.assertIs(request.test_attr, self.app)
Exemple #3
0
 def test_resource_finder(self):
     next_handler = lambda app, req: setattr(req, 'test_attr', app)
     request = self.app.make_blank_request('/test')
     handlers.resource_finder(self.app, request, next_handler)
     self.assertTrue(hasattr(request, 'resource'))
     self.assertTrue(hasattr(request, 'test_attr'))
     self.assertIs(request.test_attr, self.app)
Exemple #4
0
 def test_custom_method_name(self):
     self.app.mount_resource('my_method',
                             TestResource,
                             '/my_method',
                             method='my_method')
     request = self.app.make_blank_request('/my_method')
     handlers.resource_finder(self.app, request, lambda a, r: None)
     self.assertTrue(hasattr(request, 'resource'))
     self.assertEqual(request.resource_method, 'my_method')
 def test_add_slash(self):
     self.app.mount_resource('slash', TestResource, '/slash/')
     # No redirect
     request = self.app.make_blank_request('/slash/')
     handlers.resource_finder(self.app, request, lambda a, r: None)
     # Redirect to slash
     request = self.app.make_blank_request('/slash')
     with self.assertRaises(_HTTPMove) as cm:
         handlers.resource_finder(self.app, request, lambda a, r: None)
     self.assertEqual(cm.exception.location, 'http://localhost/slash/')
Exemple #6
0
 def test_add_slash(self):
     self.app.mount_resource('slash', TestResource, '/slash/')
     # No redirect
     request = self.app.make_blank_request('/slash/')
     handlers.resource_finder(self.app, request, lambda a, r: None)
     # Redirect to slash
     request = self.app.make_blank_request('/slash')
     with self.assertRaises(_HTTPMove) as cm:
         handlers.resource_finder(self.app, request, lambda a, r: None)
     self.assertEqual(cm.exception.location, 'http://localhost/slash/')
Exemple #7
0
    def test_add_slash_redirect(self):
        app = self.app
        app.mount_resource('test', TestResource, '/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/'))
    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/'))
 def test_missing_method_raises_405(self):
     request = self.app.make_blank_request('/test', method='POST')
     with self.assertRaises(HTTPMethodNotAllowed):
         handlers.resource_finder(self.app, request, lambda a, r: None)
 def test_unregistered_path_raises_404(self):
     request = self.app.make_blank_request('/unregistered')
     with self.assertRaises(HTTPNotFound):
         handlers.resource_finder(self.app, request, lambda a, r: None)
Exemple #11
0
 def test_missing_method_raises_405(self):
     request = self.app.make_blank_request('/test', method='POST')
     with self.assertRaises(HTTPMethodNotAllowed):
         handlers.resource_finder(self.app, request, lambda a, r: None)
Exemple #12
0
 def test_unregistered_path_raises_404(self):
     request = self.app.make_blank_request('/unregistered')
     with self.assertRaises(HTTPNotFound):
         handlers.resource_finder(self.app, request, lambda a, r: None)