Ejemplo n.º 1
0
    def test_override_defaults(self):
        @config('*/*',
                type='no_content',
                status=301,
                response_attrs={'status': 204})
        class Resource(BaseResource):
            @config('*/*', status=302)
            @config('application/json', status=303, response_attrs={'x': 'x'})
            @config('text/html', type=None, response_attrs={})
            def GET(self):
                pass

        self.app.load_config(Resource)

        resource = Resource(None, None)
        info = Config.for_resource(self.app, resource, 'GET', 'text/html')
        self.assertIsNone(info.type)
        self.assertEqual(info.status, 302)
        self.assertEqual(info.response_attrs, {})
        self.assertEqual(info.representation_args, {})

        resource = Resource(None, None)
        info = Config.for_resource(self.app, resource, 'GET',
                                   'application/json')
        self.assertEqual(info.type, 'no_content')
        self.assertEqual(info.status, 303)
        self.assertEqual(info.response_attrs, {'x': 'x'})
        self.assertEqual(info.representation_args, {})
Ejemplo n.º 2
0
    def test_override_defaults(self):
        @config(
            '*/*', type='no_content', status=301,
            response_attrs={'status': 204})
        class Resource(BaseResource):

            @config('*/*', status=302)
            @config('application/json', status=303, response_attrs={'x': 'x'})
            @config('text/html', type=None, response_attrs={})
            def GET(self):
                pass

        self.app.load_config(Resource)

        resource = Resource(None, None)
        info = Config.for_resource(self.app, resource, 'GET', 'text/html')
        self.assertIsNone(info.type)
        self.assertEqual(info.status, 302)
        self.assertEqual(info.response_attrs, {})
        self.assertEqual(info.representation_args, {})

        resource = Resource(None, None)
        info = Config.for_resource(
            self.app, resource, 'GET', 'application/json')
        self.assertEqual(info.type, 'no_content')
        self.assertEqual(info.status, 303)
        self.assertEqual(info.response_attrs, {'x': 'x'})
        self.assertEqual(info.representation_args, {})
Ejemplo n.º 3
0
    def test_defaults(self):
        @config('*/*', status=303)
        class Resource(BaseResource):
            def GET(self):
                pass

        self.app.load_config(Resource)

        resource = Resource(None, None)
        info = Config.for_resource(self.app, resource, 'GET', 'text/html')
        self.assertIsNone(info.type)
        self.assertEqual(info.status, 303)
        self.assertEqual(info.response_attrs, {})
        self.assertEqual(info.representation_args, {})
Ejemplo n.º 4
0
    def test_add_arg(self):
        class Resource(BaseResource):
            def GET(self):
                pass

        with self.assertRaises(TypeError):
            self.app.load_config(config('*/*', xxx=True)(Resource))

        self.app.add_config_field('*/*', 'xxx', False)
        self.app.load_config(config('*/*', xxx=True)(Resource))

        resource = Resource(None, None)
        info = Config.for_resource(self.app, resource, 'GET', 'text/html')
        self.assertTrue(hasattr(info, 'xxx'))
        self.assertTrue(info.xxx)
Ejemplo n.º 5
0
    def test_defaults(self):

        @config('*/*', status=303)
        class Resource(BaseResource):

            def GET(self):
                pass

        self.app.load_config(Resource)

        resource = Resource(None, None)
        info = Config.for_resource(self.app, resource, 'GET', 'text/html')
        self.assertIsNone(info.type)
        self.assertEqual(info.status, 303)
        self.assertEqual(info.response_attrs, {})
        self.assertEqual(info.representation_args, {})
Ejemplo n.º 6
0
    def test_add_arg(self):

        class Resource(BaseResource):

            def GET(self):
                pass

        with self.assertRaises(TypeError):
            self.app.load_config(config('*/*', xxx=True)(Resource))

        self.app.add_config_field('*/*', 'xxx', False)
        self.app.load_config(config('*/*', xxx=True)(Resource))

        resource = Resource(None, None)
        info = Config.for_resource(self.app, resource, 'GET', 'text/html')
        self.assertTrue(hasattr(info, 'xxx'))
        self.assertTrue(info.xxx)