Пример #1
0
class RootController(rest.RestController):

    _versions = ['v1']
    """All supported API versions"""

    _default_version = 'v1'
    """The default API version"""

    v1 = v1.Controller()

    @expose.expose(Root)
    def get(self):
        # NOTE: The reason why convert() it's being called for every
        #       request is because we need to get the host url from
        #       the request object to make the links.
        return Root.convert()

    @pecan.expose()
    def _route(self, args):
        """Overrides the default routing behavior.

        It redirects the request to the default version of the magnum API
        if the version number is not specified in the url.
        """

        if args[0] and args[0] not in self._versions:
            args = [self._default_version] + args
        return super(RootController, self)._route(args)
Пример #2
0
    def test_check_version_too_high(self):
        self.version.major = v1_api.BASE_VERSION
        self.version.minor = v1_api.MAX_VER.minor + 1
        e = self.assertRaises(webob_exc.HTTPNotAcceptable,
                              v1_api.Controller()._check_version, self.version,
                              {'fake-headers': v1_api.MAX_VER.minor})

        self.assertEqual(v1_api.MAX_VER.minor, e.headers['fake-headers'])
Пример #3
0
 def test_check_version_ok(self):
     self.version.major = v1_api.BASE_VERSION
     self.version.minor = v1_api.MIN_VER.minor
     v1_api.Controller()._check_version(self.version)
Пример #4
0
 def test_check_version_too_low(self):
     self.version.major = v1_api.BASE_VERSION
     self.version.minor = v1_api.MIN_VER.minor - 1
     self.assertRaises(webob_exc.HTTPNotAcceptable,
                       v1_api.Controller()._check_version,
                       self.version)
Пример #5
0
 def test_check_version_invalid_major_version(self):
     self.version.major = v1_api.BASE_VERSION + 1
     self.version.minor = v1_api.MIN_VER.minor
     self.assertRaises(webob_exc.HTTPNotAcceptable,
                       v1_api.Controller()._check_version,
                       self.version)