def test_coerce_to_does_not_coerce_undefined(self): c = coerce_to(int) self.assertEqual(c(Undefined), Undefined) c = coerce_to(bool) self.assertEqual(c(Undefined), Undefined) c = coerce_to(unicode) self.assertEqual(c(Undefined), Undefined)
def test_coerce_to_raises_an_invalid_exception_on_bad_data(self): with self.assertRaises(Invalid) as cm: c = coerce_to(int) c("abc") self.assertEqual(str(cm.exception), "Expected int") with self.assertRaises(Invalid) as cm: c = coerce_to(float) c(None) self.assertEqual(str(cm.exception), "Expected float")
def test_coerce_to_returns_values_based_on_passed_in_type(self): c = coerce_to(int) self.assertEqual(c("0"), 0) self.assertEqual(c("1"), 1) self.assertEqual(c(1234), 1234) c = coerce_to(unicode) self.assertEqual(c(0), "0") self.assertEqual(c(False), "False") self.assertEqual(c("abc"), "abc")
def test_basic_integration_test(self): s = Schema({ "abc": All(coerce_to(str), when_empty(Invalid)), "def": All(int, when_empty(Invalid)) }) with self.assertRaises(InvalidGroup) as cm: s({}) self.assertEqual( map(str, cm.exception.errors), [ "A value is required @ data[abc]", "A value is required @ data[def]" ], ) a = s({"abc": 1, "def": 2}) self.assertEqual(a, {"abc": "1", "def": 2}) s = Schema(All({ "abc": coerce_to(str), "def": int })) with self.assertRaises(InvalidGroup) as cm: s({"abc": 1, "def": "abc"}) self.assertEqual( map(str, cm.exception.errors), [ "Expected int @ data[def]" ] ) s = Schema(All({ "abc": All(coerce_to(str), when_empty(Invalid)), "def": All(int, when_empty(Invalid)) })) with self.assertRaises(InvalidGroup) as cm: s({}) self.assertEqual( map(str, cm.exception.errors), [ "A value is required @ data[abc]", "A value is required @ data[def]" ], )
def test_basic_integration_test(self): s = Schema({ "abc": All(coerce_to(str), when_empty(Invalid)), "def": All(int, when_empty(Invalid)) }) with self.assertRaises(InvalidGroup) as cm: s({}) self.assertEqual( map(str, cm.exception.errors), [ "A value is required @ data[abc]", "A value is required @ data[def]" ], ) a = s({"abc": 1, "def": 2}) self.assertEqual(a, {"abc": "1", "def": 2}) s = Schema(All({"abc": coerce_to(str), "def": int})) with self.assertRaises(InvalidGroup) as cm: s({"abc": 1, "def": "abc"}) self.assertEqual(map(str, cm.exception.errors), ["Expected int @ data[def]"]) s = Schema( All({ "abc": All(coerce_to(str), when_empty(Invalid)), "def": All(int, when_empty(Invalid)) })) with self.assertRaises(InvalidGroup) as cm: s({}) self.assertEqual( map(str, cm.exception.errors), [ "A value is required @ data[abc]", "A value is required @ data[def]" ], )