Fixing a RESTController routing bug.
This commit is contained in:
		@@ -109,14 +109,14 @@ class RestController(object):
 | 
			
		||||
    def _handle_get(self, method, remainder):
 | 
			
		||||
 | 
			
		||||
        # route to a get_all or get if no additional parts are available
 | 
			
		||||
        if not remainder:
 | 
			
		||||
        if not remainder or remainder == ['']:
 | 
			
		||||
            controller = self._find_controller('get_all', 'get')
 | 
			
		||||
            if controller:
 | 
			
		||||
                return controller, []
 | 
			
		||||
            abort(404)
 | 
			
		||||
 | 
			
		||||
        # check for new/edit/delete GET requests
 | 
			
		||||
        method_name = remainder[-1]
 | 
			
		||||
        # check for new/edit/delete GET requests
 | 
			
		||||
        if method_name in ('new', 'edit', 'delete'):
 | 
			
		||||
            if method_name == 'delete':
 | 
			
		||||
                method_name = 'get_delete'
 | 
			
		||||
 
 | 
			
		||||
@@ -260,6 +260,27 @@ class TestRestController(TestCase):
 | 
			
		||||
        assert r.status_int == 200
 | 
			
		||||
        assert r.body == 'test'
 | 
			
		||||
 | 
			
		||||
    def test_getall_with_trailing_slash(self):
 | 
			
		||||
 | 
			
		||||
        class ThingsController(RestController):
 | 
			
		||||
 | 
			
		||||
            data = ['zero', 'one', 'two', 'three']
 | 
			
		||||
 | 
			
		||||
            @expose('json')
 | 
			
		||||
            def get_all(self):
 | 
			
		||||
                return dict(items=self.data)
 | 
			
		||||
 | 
			
		||||
        class RootController(object):
 | 
			
		||||
            things = ThingsController()
 | 
			
		||||
 | 
			
		||||
        # create the app
 | 
			
		||||
        app = TestApp(make_app(RootController()))
 | 
			
		||||
 | 
			
		||||
        # test get_all
 | 
			
		||||
        r = app.get('/things/')
 | 
			
		||||
        assert r.status_int == 200
 | 
			
		||||
        assert r.body == dumps(dict(items=ThingsController.data))
 | 
			
		||||
 | 
			
		||||
    def test_nested_rest(self):
 | 
			
		||||
 | 
			
		||||
        class BarsController(RestController):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user