@@ -69,3 +69,45 @@ def test_flavor_contents(self):
6969 self .assertEqual (params ['zone' ], 'any' )
7070 self .assertEqual (params ['size' ], 'm1.medium' )
7171 self .assertTrue (params ['image' ])
72+
73+ def test_flavor_update (self ):
74+ """Tests that flavors can be updated by the client."""
75+ url = '/api/flavors'
76+ params = {
77+ 'region' : 'us-west-2' ,
78+ 'size' : 't1.micro' ,
79+ }
80+ body = {'id' : 'autotest' , 'provider' : 'autotest' , 'params' : json .dumps (params )}
81+ response = self .client .post (url , json .dumps (body ), content_type = 'application/json' )
82+ self .assertEqual (response .status_code , 201 )
83+ flavor_id = response .data ['id' ]
84+ response = self .client .get ('/api/flavors' )
85+ self .assertEqual (response .status_code , 200 )
86+ self .assertEqual (len (response .data ['results' ]), 1 )
87+ url = "/api/flavors/{flavor_id}" .format (** locals ())
88+ response = self .client .get (url )
89+ self .assertEqual (response .status_code , 200 )
90+ params = json .loads (response .data ['params' ])
91+ self .assertEqual (params ['region' ], 'us-west-2' )
92+ self .assertEqual (params ['zone' ], 'any' )
93+ self .assertEqual (params ['size' ], 't1.micro' )
94+ self .assertTrue (params ['image' ])
95+ params = {
96+ 'size' : 'c1.xlarge' ,
97+ 'image' : 'ami-c98d1bf9' ,
98+ }
99+ body = {'id' : flavor_id , 'params' : json .dumps (params )}
100+ response = self .client .patch (url , json .dumps (body ), content_type = 'application/json' )
101+ self .assertEqual (response .status_code , 200 )
102+ flavor_id = response .data ['id' ]
103+ response = self .client .get ('/api/flavors' )
104+ self .assertEqual (response .status_code , 200 )
105+ self .assertEqual (len (response .data ['results' ]), 1 )
106+ url = "/api/flavors/{flavor_id}" .format (** locals ())
107+ response = self .client .get (url )
108+ self .assertEqual (response .status_code , 200 )
109+ params = json .loads (response .data ['params' ])
110+ self .assertEqual (params ['region' ], 'us-west-2' )
111+ self .assertEqual (params ['zone' ], 'any' )
112+ self .assertEqual (params ['size' ], 'c1.xlarge' )
113+ self .assertEqual (params ['image' ], 'ami-c98d1bf9' )
0 commit comments