def test_validate_parameter_object_array_invalid(self):
     parameter_api = {
         'name': 'name1',
         'schema': {
             'type': 'array',
             'items': {
                 'type': 'object',
                 'properties': {
                     'A': {
                         'type': 'string'
                     },
                     'B': {
                         'type': 'integer'
                     }
                 }
             }
         }
     }
     value = [{
         'A': 'string in',
         'B': '33'
     }, {
         'A': 'string2',
         'B': 'invalid'
     }]
     with self.assertRaises(InvalidArgument):
         validate_parameter(value, parameter_api, self.message)
 def test_validate_parameter_primitive_no_formats_required_string(self):
     parameter_api = {'name': 'name1', 'type': 'string', 'required': True}
     value = 'test string'
     self.assertEqual(
         validate_parameter(value, parameter_api, self.message), value)
     value = ''
     self.assertEqual(
         validate_parameter(value, parameter_api, self.message), value)
 def test_validate_parameter_primitive_string_format_invalid(self):
     parameter_api = {
         'name': 'name1',
         'type': 'string',
         'minLength': 1,
         'maxLength': 3
     }
     value = 'test string'
     with self.assertRaises(InvalidArgument):
         validate_parameter(value, parameter_api, self.message)
 def test_validate_parameter_invalid_data_type(self):
     parameter_api = {
         'name': 'name1',
         'type': 'invalid',
         'minLength': 1,
         'maxLength': 25,
         'enum': ['test', 'test3']
     }
     value = 'test2'
     with self.assertRaises(InvalidArgument):
         validate_parameter(value, parameter_api, self.message)
 def test_validate_parameter_primitive_no_formats_not_required_valid_bool(
         self):
     parameter_api = {'name': 'name1', 'type': 'boolean'}
     true_values = ['true', 'True', 'TRUE', 'TrUe']
     false_values = ['false', 'False', 'FALSE', 'FaLSe']
     for true_value in true_values:
         self.assertEqual(
             validate_parameter(true_value, parameter_api, self.message),
             True)
     for false_value in false_values:
         self.assertEqual(
             validate_parameter(false_value, parameter_api, self.message),
             False)
 def test_validate_parameter_primitive_string_format_valid(self):
     parameter_api = {
         'name': 'name1',
         'type': 'string',
         'minLength': 1,
         'maxLength': 25
     }
     value = 'test string'
     self.assertEqual(
         validate_parameter(value, parameter_api, self.message), value)
 def test_validate_parameter_object_array(self):
     parameter_api = {
         'name': 'name1',
         'schema': {
             'type': 'array',
             'items': {
                 'type': 'object',
                 'properties': {
                     'A': {
                         'type': 'string'
                     },
                     'B': {
                         'type': 'integer'
                     }
                 }
             }
         }
     }
     value = [{'A': 'string in', 'B': '33'}, {'A': 'string2', 'B': '7'}]
     validate_parameter(value, parameter_api, self.message)
 def test_validate_parameter_object_from_string(self):
     parameter_api = {
         'name': 'name1',
         'schema': {
             'type': 'object',
             'required': ['a', 'b'],
             'properties': {
                 'a': {
                     'type': 'number'
                 },
                 'b': {
                     'type': 'string'
                 },
                 'c': {
                     'type': 'boolean'
                 }
             }
         }
     }
     value = json.dumps({'a': 435.6, 'b': 'aaaa', 'c': True})
     validate_parameter(value, parameter_api, self.message)
 def test_validate_parameter_primitive_no_formats_required_none(self):
     parameter_apis = [{
         'name': 'name1',
         'type': 'string',
         'required': True
     }, {
         'name': 'name1',
         'type': 'number',
         'required': True
     }, {
         'name': 'name1',
         'type': 'integer',
         'required': True
     }, {
         'name': 'name1',
         'type': 'boolean',
         'required': True
     }]
     for parameter_api in parameter_apis:
         with self.assertRaises(InvalidArgument):
             validate_parameter(None, parameter_api, self.message)
 def test_validate_parameter_object_invalid(self):
     parameter_api = {
         'name': 'name1',
         'schema': {
             'type': 'object',
             'required': ['a', 'b'],
             'properties': {
                 'a': {
                     'type': 'number'
                 },
                 'b': {
                     'type': 'string'
                 },
                 'c': {
                     'type': 'boolean'
                 }
             }
         }
     }
     value = {'a': 435.6, 'invalid': 'aaaa', 'c': True}
     with self.assertRaises(InvalidArgument):
         validate_parameter(value, parameter_api, self.message)
 def test_validate_parameter_primitive_not_required_none(self):
     parameter_apis = [{
         'name': 'name1',
         'type': 'string',
         'required': False
     }, {
         'name': 'name1',
         'type': 'number',
         'required': False
     }, {
         'name': 'name1',
         'type': 'integer'
     }, {
         'name': 'name1',
         'type': 'boolean'
     }]
     for parameter_api in parameter_apis:
         self.assertIsNone(
             validate_parameter(None, parameter_api, self.message))
 def test_validate_parameter_primitive_no_formats_invalid_integer_cause_float_string(
         self):
     parameter_api = {'name': 'name1', 'type': 'integer'}
     value = '3.27'
     with self.assertRaises(InvalidArgument):
         validate_parameter(value, parameter_api, self.message)
 def test_validate_parameter_primitive_no_formats_invalid_boolean(self):
     parameter_api = {'name': 'name1', 'type': 'boolean'}
     value = 'abc'
     with self.assertRaises(InvalidArgument):
         validate_parameter(value, parameter_api, self.message)
 def test_validate_parameter_primitive_role(self):
     parameter_api = {'name': 'name1', 'type': 'role'}
     value = '42'
     self.assertEqual(
         validate_parameter(value, parameter_api, self.message), 42)
 def test_validate_parameter_primitive_user(self):
     parameter_api = {'name': 'name1', 'type': 'user'}
     value = '3'
     self.assertEqual(
         validate_parameter(value, parameter_api, self.message), 3)
 def test_validate_parameter_primitive_no_formats_not_required_valid_negative_int(
         self):
     parameter_api = {'name': 'name1', 'type': 'integer'}
     value = '-3'
     self.assertEqual(
         validate_parameter(value, parameter_api, self.message), -3)
 def test_validate_parameter_primitive_no_formats_not_required_valid_int_from_float(
         self):
     parameter_api = {'name': 'name1', 'type': 'integer'}
     value = 3.27
     self.assertEqual(
         validate_parameter(value, parameter_api, self.message), 3)
 def test_validate_parameter_primitive_no_formats_not_required_valid_number(
         self):
     parameter_api = {'name': 'name1', 'type': 'number'}
     value = '3.27'
     self.assertEqual(
         validate_parameter(value, parameter_api, self.message), 3.27)
 def test_validate_parameter_primitive_no_formats_invalid_role_cause_0(
         self):
     parameter_api = {'name': 'name1', 'type': 'role'}
     value = '0'
     with self.assertRaises(InvalidArgument):
         validate_parameter(value, parameter_api, self.message)