15
15
16
16
"""Version-independent api tests"""
17
17
18
-
19
18
import httplib2
20
19
from oslo_serialization import jsonutils
21
20
from six .moves import http_client
22
21
23
22
from glance .tests import functional
23
+ from glance .tests .unit import test_versions as tv
24
24
25
25
26
- def _generate_v2_versions (url ):
27
- version_list = []
28
- version_list .extend ([
29
- {
30
- 'id' : 'v2.9' ,
31
- 'status' : 'CURRENT' ,
32
- 'links' : [{'rel' : 'self' , 'href' : url % '2' }],
33
- },
34
- {
35
- 'id' : 'v2.7' ,
36
- 'status' : 'SUPPORTED' ,
37
- 'links' : [{'rel' : 'self' , 'href' : url % '2' }],
38
- },
39
- {
40
- 'id' : 'v2.6' ,
41
- 'status' : 'SUPPORTED' ,
42
- 'links' : [{'rel' : 'self' , 'href' : url % '2' }],
43
- },
44
- {
45
- 'id' : 'v2.5' ,
46
- 'status' : 'SUPPORTED' ,
47
- 'links' : [{'rel' : 'self' , 'href' : url % '2' }],
48
- },
49
- {
50
- 'id' : 'v2.4' ,
51
- 'status' : 'SUPPORTED' ,
52
- 'links' : [{'rel' : 'self' , 'href' : url % '2' }],
53
- },
54
- {
55
- 'id' : 'v2.3' ,
56
- 'status' : 'SUPPORTED' ,
57
- 'links' : [{'rel' : 'self' , 'href' : url % '2' }],
58
- },
59
- {
60
- 'id' : 'v2.2' ,
61
- 'status' : 'SUPPORTED' ,
62
- 'links' : [{'rel' : 'self' , 'href' : url % '2' }],
63
- },
64
- {
65
- 'id' : 'v2.1' ,
66
- 'status' : 'SUPPORTED' ,
67
- 'links' : [{'rel' : 'self' , 'href' : url % '2' }],
68
- },
69
- {
70
- 'id' : 'v2.0' ,
71
- 'status' : 'SUPPORTED' ,
72
- 'links' : [{'rel' : 'self' , 'href' : url % '2' }],
73
- }
74
- ])
75
- v2_versions = {'versions' : version_list }
76
- return v2_versions
77
-
78
-
79
- def _generate_all_versions (url ):
80
- v2 = _generate_v2_versions (url )
81
- all_versions = {'versions' : v2 ['versions' ]}
82
- return all_versions
26
+ class TestApiVersions (functional .FunctionalTest ):
27
+ def test_version_configurations (self ):
28
+ """Test that versioning is handled properly through all channels"""
29
+ self .start_servers (** self .__dict__ .copy ())
83
30
31
+ url = 'http://127.0.0.1:%d' % self .api_port
32
+ versions = {'versions' : tv .get_versions_list (url )}
33
+
34
+ # Verify version choices returned.
35
+ path = 'http://%s:%d' % ('127.0.0.1' , self .api_port )
36
+ http = httplib2 .Http ()
37
+ response , content_json = http .request (path , 'GET' )
38
+ self .assertEqual (http_client .MULTIPLE_CHOICES , response .status )
39
+ content = jsonutils .loads (content_json .decode ())
40
+ self .assertEqual (versions , content )
41
+
42
+ def test_v2_api_configuration (self ):
43
+ self .start_servers (** self .__dict__ .copy ())
44
+
45
+ url = 'http://127.0.0.1:%d' % self .api_port
46
+ versions = {'versions' : tv .get_versions_list (url )}
47
+
48
+ # Verify version choices returned.
49
+ path = 'http://%s:%d' % ('127.0.0.1' , self .api_port )
50
+ http = httplib2 .Http ()
51
+ response , content_json = http .request (path , 'GET' )
52
+ self .assertEqual (http_client .MULTIPLE_CHOICES , response .status )
53
+ content = jsonutils .loads (content_json .decode ())
54
+ self .assertEqual (versions , content )
84
55
85
- class TestApiVersions (functional .FunctionalTest ):
86
56
57
+ class TestApiVersionsMultistore (functional .MultipleBackendFunctionalTest ):
87
58
def test_version_configurations (self ):
88
59
"""Test that versioning is handled properly through all channels"""
89
60
self .start_servers (** self .__dict__ .copy ())
90
61
91
- url = 'http://127.0.0.1:%d/v%%s/' % self .api_port
92
- versions = _generate_all_versions (url )
62
+ url = 'http://127.0.0.1:%d' % self .api_port
63
+ versions = {'versions' : tv .get_versions_list (url ,
64
+ enabled_backends = True )}
93
65
94
66
# Verify version choices returned.
95
67
path = 'http://%s:%d' % ('127.0.0.1' , self .api_port )
@@ -102,8 +74,9 @@ def test_version_configurations(self):
102
74
def test_v2_api_configuration (self ):
103
75
self .start_servers (** self .__dict__ .copy ())
104
76
105
- url = 'http://127.0.0.1:%d/v%%s/' % self .api_port
106
- versions = _generate_v2_versions (url )
77
+ url = 'http://127.0.0.1:%d' % self .api_port
78
+ versions = {'versions' : tv .get_versions_list (url ,
79
+ enabled_backends = True )}
107
80
108
81
# Verify version choices returned.
109
82
path = 'http://%s:%d' % ('127.0.0.1' , self .api_port )
@@ -119,8 +92,8 @@ def setUp(self):
119
92
super (TestApiPaths , self ).setUp ()
120
93
self .start_servers (** self .__dict__ .copy ())
121
94
122
- url = 'http://127.0.0.1:%d/v%%s/ ' % self .api_port
123
- self .versions = _generate_all_versions (url )
95
+ url = 'http://127.0.0.1:%d' % self .api_port
96
+ self .versions = { 'versions' : tv . get_versions_list (url )}
124
97
images = {'images' : []}
125
98
self .images_json = jsonutils .dumps (images )
126
99
0 commit comments