]>
git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/tests/test_versioning.py
1 # -*- coding: utf-8 -*-
5 from ..controllers
._api
_router
import APIRouter
6 from ..controllers
._rest
_controller
import RESTController
7 from ..controllers
._version
import APIVersion
8 from ..tests
import ControllerTestCase
11 @APIRouter("/vtest", secure
=False)
12 class VTest(RESTController
):
15 @RESTController.MethodMap(version
=APIVersion(0, 1))
17 return {'version': ""}
20 return {'version': ""}
22 @RESTController.Collection('GET', version
=APIVersion(1, 0))
24 return {'version': '1.0'}
26 @RESTController.Collection('GET', version
=APIVersion(1, 1))
27 def vmethodv1_1(self
):
28 return {'version': '1.1'}
30 @RESTController.Collection('GET', version
=APIVersion(2, 0))
32 return {'version': '2.0'}
35 class RESTVersioningTest(ControllerTestCase
, unittest
.TestCase
):
37 def setup_server(cls
):
38 cls
.setup_controllers([VTest
], "/test")
41 for (version
, expected_status
) in [
45 with self
.subTest(version
=version
):
46 self
._get
('/test/api/vtest', version
=APIVersion
._make
(version
))
47 self
.assertStatus(expected_status
)
50 for (version
, expected_status
) in [
54 with self
.subTest(version
=version
):
55 self
._get
('/test/api/vtest/vmethod',
56 version
=APIVersion
._make
(version
))
57 self
.assertStatus(expected_status
)
60 for (version
, expected_status
) in [
64 with self
.subTest(version
=version
):
65 self
._get
('/test/api/vtest/vmethodv2',
66 version
=APIVersion
._make
(version
))
67 self
.assertStatus(expected_status
)
69 def test_backward_compatibility(self
):
70 for (version
, expected_status
) in [
75 with self
.subTest(version
=version
):
76 self
._get
('/test/api/vtest/vmethodv1_1',
77 version
=APIVersion
._make
(version
))
78 self
.assertStatus(expected_status
)