166
166
self.assertTrue(validator.is_valid(body))
168
168
def test_validate_resize_volume_string(self):
169
body = {"resize": {"volume": {"size": "4"}}}
170
schema = self.controller.get_schema('action', body)
171
validator = jsonschema.Draft4Validator(schema)
172
self.assertTrue(validator.is_valid(body))
174
def test_validate_resize_volume_string_invalid_number(self):
169
175
body = {"resize": {"volume": {"size": '-44.0'}}}
170
176
schema = self.controller.get_schema('action', body)
171
177
validator = jsonschema.Draft4Validator(schema)
172
self.assertTrue(validator.is_valid(body))
178
self.assertFalse(validator.is_valid(body))
179
errors = sorted(validator.iter_errors(body), key=lambda e: e.path)
180
self.assertThat(errors[0].context[1].message,
181
Equals("'-44.0' does not match '^[0-9]+$'"))
182
self.assertThat(errors[0].path.pop(), Equals('size'))
174
def test_validate_resize_volume_invalid(self):
184
def test_validate_resize_volume_invalid_characters(self):
175
185
body = {"resize": {"volume": {"size": 'x'}}}
176
186
schema = self.controller.get_schema('action', body)
177
187
validator = jsonschema.Draft4Validator(schema)
180
190
self.assertThat(errors[0].context[0].message,
181
191
Equals("'x' is not of type 'integer'"))
182
192
self.assertThat(errors[0].context[1].message,
183
Equals("'x' does not match '[0-9]+'"))
193
Equals("'x' does not match '^[0-9]+$'"))
184
194
self.assertThat(errors[0].path.pop(), Equals('size'))
186
196
def test_validate_resize_instance(self):
216
226
errors[0].path.pop())
218
@skip("This damn URI validator allows just about any garbage you give it")
228
@skip("This URI validator allows just about anything you give it")
219
229
def test_validate_resize_instance_invalid_url(self):
220
230
body = {"resize": {"flavorRef": "xyz-re1f2-daze329d-f23901"}}
221
231
schema = self.controller.get_schema('action', body)