Esempio n. 1
0
 def test_invalid_root_dict_fromjson(self):
     try:
         parse('["invalid"]', {'a': ArrayType(str)}, False)
         assert False
     except Exception as e:
         assert isinstance(e, ClientSideError)
         assert e.msg == "Request must be a JSON dict"
Esempio n. 2
0
 def test_invalid_root_dict_fromjson(self):
     try:
         parse('["invalid"]', {'a': ArrayType(str)}, False)
         assert False
     except Exception as e:
         assert isinstance(e, ClientSideError)
         assert e.msg == "Request must be a JSON dict"
Esempio n. 3
0
 def test_invalid_list_fromjson(self):
     jlist = "invalid"
     try:
         parse('{"a": "%s"}' % jlist, {'a': ArrayType(str)}, False)
         assert False
     except Exception as e:
         assert isinstance(e, InvalidInput)
         assert e.fieldname == 'a'
         assert e.value == jlist
         assert e.msg == "Value not a valid list: %s" % jlist
Esempio n. 4
0
 def test_invalid_list_fromjson(self):
     jlist = "invalid"
     try:
         parse('{"a": "%s"}' % jlist, {'a': ArrayType(str)}, False)
         assert False
     except Exception as e:
         assert isinstance(e, InvalidInput)
         assert e.fieldname == 'a'
         assert e.value == jlist
         assert e.msg == "Value not a valid list: %s" % jlist
Esempio n. 5
0
 def test_invalid_dict_fromjson(self):
     jdict = "invalid"
     try:
         parse('{"a": "%s"}' % jdict, {'a': DictType(str, str)}, False)
         assert False
     except Exception as e:
         assert isinstance(e, InvalidInput)
         assert e.fieldname == 'a'
         assert e.value == jdict
         assert e.msg == "Value not a valid dict: %s" % jdict
Esempio n. 6
0
 def test_invalid_date_fromjson_bodyarg(self):
     jdate = "2015-01-invalid"
     try:
         parse('"%s"' % jdate, {'a': datetime.date}, True)
         assert False
     except Exception as e:
         assert isinstance(e, InvalidInput)
         assert e.fieldname == 'a'
         assert e.value == jdate
         assert e.msg == "'%s' is not a legal date value" % jdate
Esempio n. 7
0
 def test_invalid_dict_fromjson(self):
     jdict = "invalid"
     try:
         parse('{"a": "%s"}' % jdict, {'a': DictType(str, str)}, False)
         assert False
     except Exception as e:
         assert isinstance(e, InvalidInput)
         assert e.fieldname == 'a'
         assert e.value == jdict
         assert e.msg == "Value not a valid dict: %s" % jdict
Esempio n. 8
0
 def test_invalid_date_fromjson_bodyarg(self):
     jdate = "2015-01-invalid"
     try:
         parse('"%s"' % jdate, {'a': datetime.date}, True)
         assert False
     except Exception as e:
         assert isinstance(e, InvalidInput)
         assert e.fieldname == 'a'
         assert e.value == jdate
         assert e.msg == "'%s' is not a legal date value" % jdate
Esempio n. 9
0
 def test_ambiguous_to_bool(self):
     amb_values = ('', 'randomstring', '2', '-32', 'not true')
     for value in amb_values:
         for ba in True, False:
             jd = '"%s"' if ba else '{"a": "%s"}'
             try:
                 parse(jd % value, {'a': bool}, ba)
                 assert False, (
                     "Value '%s' should not parse correctly for %s." %
                     (value, bool))
             except ClientSideError as e:
                 self.assertIsInstance(e, InvalidInput)
                 self.assertEqual(e.fieldname, 'a')
                 self.assertEqual(e.value, value)
Esempio n. 10
0
 def test_parse_unexpected_attribute(self):
     o = {
         "id": "1",
         "name": "test",
         "other": "unknown",
         "other2": "still unknown",
     }
     for ba in True, False:
         jd = o if ba else {"o": o}
         try:
             parse(json.dumps(jd), {'o': Obj}, ba)
             raise AssertionError("Object should not parse correcty.")
         except wsme.exc.UnknownAttribute as e:
             self.assertEqual(e.attributes, set(['other', 'other2']))
Esempio n. 11
0
 def test_parse_unexpected_attribute(self):
     o = {
         "id": "1",
         "name": "test",
         "other": "unknown",
         "other2": "still unknown",
     }
     for ba in True, False:
         jd = o if ba else {"o": o}
         try:
             parse(json.dumps(jd), {'o': Obj}, ba)
             raise AssertionError("Object should not parse correcty.")
         except wsme.exc.UnknownAttribute as e:
             self.assertEqual(e.attributes, set(['other', 'other2']))
Esempio n. 12
0
 def test_ambiguous_to_bool(self):
     amb_values = ('', 'randomstring', '2', '-32', 'not true')
     for value in amb_values:
         for ba in True, False:
             jd = '"%s"' if ba else '{"a": "%s"}'
             try:
                 parse(jd % value, {'a': bool}, ba)
                 assert False, (
                     "Value '%s' should not parse correctly for %s." %
                     (value, bool)
                 )
             except ClientSideError as e:
                 self.assertIsInstance(e, InvalidInput)
                 self.assertEqual(e.fieldname, 'a')
                 self.assertEqual(e.value, value)
Esempio n. 13
0
 def test_parse_unexpected_nested_attribute(self):
     no = {
         "o": {
             "id": "1",
             "name": "test",
             "other": "unknown",
         },
     }
     for ba in False, True:
         jd = no if ba else {"no": no}
         try:
             parse(json.dumps(jd), {'no': NestedObj}, ba)
         except wsme.exc.UnknownAttribute as e:
             self.assertEqual(e.attributes, set(['other']))
             self.assertEqual(e.fieldname, "no.o")
Esempio n. 14
0
 def test_parse_unexpected_nested_attribute(self):
     no = {
         "o": {
             "id": "1",
             "name": "test",
             "other": "unknown",
         },
     }
     for ba in False, True:
         jd = no if ba else {"no": no}
         try:
             parse(json.dumps(jd), {'no': NestedObj}, ba)
         except wsme.exc.UnknownAttribute as e:
             self.assertEqual(e.attributes, set(['other']))
             self.assertEqual(e.fieldname, "no.o")
Esempio n. 15
0
 def test_invalid_str_to_buitin_fromjson(self):
     types = six.integer_types + (float, bool)
     value = '2a'
     for t in types:
         for ba in True, False:
             jd = '"%s"' if ba else '{"a": "%s"}'
             try:
                 parse(jd % value, {'a': t}, ba)
                 assert False, (
                     "Value '%s' should not parse correctly for %s." %
                     (value, t))
             except ClientSideError as e:
                 self.assertIsInstance(e, InvalidInput)
                 self.assertEqual(e.fieldname, 'a')
                 self.assertEqual(e.value, value)
Esempio n. 16
0
 def test_invalid_str_to_buitin_fromjson(self):
     types = six.integer_types + (float,)
     value = '2a'
     for t in types:
         for ba in True, False:
             jd = '"%s"' if ba else '{"a": "%s"}'
             try:
                 parse(jd % value, {'a': t}, ba)
                 assert False, (
                     "Value '%s' should not parse correctly for %s." %
                     (value, t)
                 )
             except ClientSideError as e:
                 self.assertIsInstance(e, InvalidInput)
                 self.assertEqual(e.fieldname, 'a')
                 self.assertEqual(e.value, value)
Esempio n. 17
0
 def test_valid_int_fromjson(self):
     value = 2
     for ba in True, False:
         jd = '%d' if ba else '{"a": %d}'
         i = parse(jd % value, {'a': int}, ba)
         self.assertEqual(i, {'a': 2})
         self.assertIsInstance(i['a'], int)
Esempio n. 18
0
 def test_valid_simple_custom_type_fromjson(self):
     value = 2
     for ba in True, False:
         jd = '"%d"' if ba else '{"a": "%d"}'
         i = parse(jd % value, {'a': CustomInt()}, ba)
         self.assertEqual(i, {'a': 2})
         self.assertIsInstance(i['a'], int)
Esempio n. 19
0
 def test_empty_str_to_bool_fromjson(self):
     value = ''
     for ba in True, False:
         jd = '"%s"' if ba else '{"a": "%s"}'
         i = parse(jd % value, {'a': bool}, ba)
         self.assertIsInstance(i['a'], bool)
         self.assertFalse(i['a'])
Esempio n. 20
0
 def test_false_ints_to_bool(self):
     value = 0
     for ba in True, False:
         jd = '%d' if ba else '{"a": %d}'
         i = parse(jd % value, {'a': bool}, ba)
         self.assertIsInstance(i['a'], bool)
         self.assertFalse(i['a'])
Esempio n. 21
0
 def test_valid_int_fromjson(self):
     value = 2
     for ba in True, False:
         jd = '%d' if ba else '{"a": %d}'
         i = parse(jd % value, {'a': int}, ba)
         self.assertEqual(i, {'a': 2})
         self.assertIsInstance(i['a'], int)
Esempio n. 22
0
 def test_false_ints_to_bool(self):
     value = 0
     for ba in True, False:
         jd = '%d' if ba else '{"a": %d}'
         i = parse(jd % value, {'a': bool}, ba)
         self.assertIsInstance(i['a'], bool)
         self.assertFalse(i['a'])
Esempio n. 23
0
 def test_valid_simple_custom_type_fromjson(self):
     value = 2
     for ba in True, False:
         jd = '"%d"' if ba else '{"a": "%d"}'
         i = parse(jd % value, {'a': CustomInt()}, ba)
         self.assertEqual(i, {'a': 2})
         self.assertIsInstance(i['a'], int)
Esempio n. 24
0
 def test_false_strings_to_bool(self):
     false_values = ('false', 'f', 'no', 'n', 'off', '0')
     for value in false_values:
         for ba in True, False:
             jd = '"%s"' if ba else '{"a": "%s"}'
             i = parse(jd % value, {'a': bool}, ba)
             self.assertIsInstance(i['a'], bool)
             self.assertFalse(i['a'])
Esempio n. 25
0
 def test_valid_num_to_float_fromjson(self):
     values = 2, 2.3
     for v in values:
         for ba in True, False:
             jd = '%f' if ba else '{"a": %f}'
             i = parse(jd % v, {'a': float}, ba)
             self.assertEqual(i, {'a': float(v)})
             self.assertIsInstance(i['a'], float)
Esempio n. 26
0
 def test_valid_num_to_float_fromjson(self):
     values = 2, 2.3
     for v in values:
         for ba in True, False:
             jd = '%f' if ba else '{"a": %f}'
             i = parse(jd % v, {'a': float}, ba)
             self.assertEqual(i, {'a': float(v)})
             self.assertIsInstance(i['a'], float)
Esempio n. 27
0
 def test_false_strings_to_bool(self):
     false_values = ('false', 'f', 'no', 'n', 'off', '0')
     for value in false_values:
         for ba in True, False:
             jd = '"%s"' if ba else '{"a": "%s"}'
             i = parse(jd % value, {'a': bool}, ba)
             self.assertIsInstance(i['a'], bool)
             self.assertFalse(i['a'])
Esempio n. 28
0
 def test_true_ints_to_bool(self):
     true_values = (1, 5, -3)
     for value in true_values:
         for ba in True, False:
             jd = '%d' if ba else '{"a": %d}'
             i = parse(jd % value, {'a': bool}, ba)
             self.assertIsInstance(i['a'], bool)
             self.assertTrue(i['a'])
Esempio n. 29
0
 def test_true_ints_to_bool(self):
     true_values = (1, 5, -3)
     for value in true_values:
         for ba in True, False:
             jd = '%d' if ba else '{"a": %d}'
             i = parse(jd % value, {'a': bool}, ba)
             self.assertIsInstance(i['a'], bool)
             self.assertTrue(i['a'])
Esempio n. 30
0
 def test_true_strings_to_bool(self):
     true_values = ('true', 't', 'yes', 'y', 'on', '1')
     for value in true_values:
         for ba in True, False:
             jd = '"%s"' if ba else '{"a": "%s"}'
             i = parse(jd % value, {'a': bool}, ba)
             self.assertIsInstance(i['a'], bool)
             self.assertTrue(i['a'])
Esempio n. 31
0
 def test_true_strings_to_bool(self):
     true_values = ('true', 't', 'yes', 'y', 'on', '1')
     for value in true_values:
         for ba in True, False:
             jd = '"%s"' if ba else '{"a": "%s"}'
             i = parse(jd % value, {'a': bool}, ba)
             self.assertIsInstance(i['a'], bool)
             self.assertTrue(i['a'])
Esempio n. 32
0
 def test_valid_str_to_builtin_fromjson(self):
     types = six.integer_types + (bool, float)
     value = '2'
     for t in types:
         for ba in True, False:
             jd = '%s' if ba else '{"a": %s}'
             i = parse(jd % value, {'a': t}, ba)
             self.assertEqual(
                 i, {'a': t(value)},
                 "Parsed value does not correspond for %s: "
                 "%s != {'a': %s}" % (t, repr(i), repr(t(value))))
             self.assertIsInstance(i['a'], t)
Esempio n. 33
0
 def test_invalid_simple_custom_type_fromjson(self):
     value = '2b'
     for ba in True, False:
         jd = '"%s"' if ba else '{"a": "%s"}'
         try:
             i = parse(jd % value, {'a': CustomInt()}, ba)
             self.assertEqual(i, {'a': 2})
         except ClientSideError as e:
             self.assertIsInstance(e, InvalidInput)
             self.assertEqual(e.fieldname, 'a')
             self.assertEqual(e.value, value)
             self.assertEqual(
                 e.msg,
                 "invalid literal for int() with base 10: '%s'" % value)
Esempio n. 34
0
 def test_invalid_simple_custom_type_fromjson(self):
     value = '2b'
     for ba in True, False:
         jd = '"%s"' if ba else '{"a": "%s"}'
         try:
             i = parse(jd % value, {'a': CustomInt()}, ba)
             self.assertEqual(i, {'a': 2})
         except ClientSideError as e:
             self.assertIsInstance(e, InvalidInput)
             self.assertEqual(e.fieldname, 'a')
             self.assertEqual(e.value, value)
             self.assertEqual(
                 e.msg,
                 "invalid literal for int() with base 10: '%s'" % value
             )
Esempio n. 35
0
 def test_valid_str_to_builtin_fromjson(self):
     types = six.integer_types + (bool, float)
     value = '2'
     for t in types:
         for ba in True, False:
             jd = '%s' if ba else '{"a": %s}'
             i = parse(jd % value, {'a': t}, ba)
             self.assertEqual(
                 i, {'a': t(value)},
                 "Parsed value does not correspond for %s: "
                 "%s != {'a': %s}" % (
                     t, repr(i), repr(t(value))
                 )
             )
             self.assertIsInstance(i['a'], t)
Esempio n. 36
0
 def test_parse_valid_date_bodyarg(self):
     j = parse('"2011-01-01"', {'a': datetime.date}, True)
     assert isinstance(j['a'], datetime.date)
Esempio n. 37
0
 def test_parse_valid_date(self):
     j = parse('{"a": "2011-01-01"}', {'a': datetime.date}, False)
     assert isinstance(j['a'], datetime.date)
Esempio n. 38
0
 def test_parse_valid_date(self):
     j = parse('{"a": "2011-01-01"}', {'a': datetime.date}, False)
     assert isinstance(j['a'], datetime.date)
Esempio n. 39
0
 def test_parse_valid_date_bodyarg(self):
     j = parse('"2011-01-01"', {'a': datetime.date}, True)
     assert isinstance(j['a'], datetime.date)