Beispiel #1
0
    def test_serialize_true(self):
        cv = types.Boolean()

        result = cv.serialize(True)

        assert isinstance(result, str)
        assert result == "true"
Beispiel #2
0
    def test_serialize_false(self):
        cv = types.Boolean()

        result = cv.serialize(False)

        assert isinstance(result, str)
        assert result == "false"
Beispiel #3
0
    def test_serialize_invalid_values(self):
        cv = types.Boolean()

        with pytest.raises(ValueError):
            cv.serialize([])

        with pytest.raises(ValueError):
            cv.serialize("1")
Beispiel #4
0
    def test_deserialize_conversion_failure(self):
        cv = types.Boolean()

        with pytest.raises(ValueError):
            cv.deserialize("nope")

        with pytest.raises(ValueError):
            cv.deserialize("sure")
Beispiel #5
0
 def test_deserialize_conversion_success(self):
     value = types.Boolean()
     for true in ('1', 'yes', 'true', 'on'):
         self.assertIs(value.deserialize(true), True)
         self.assertIs(value.deserialize(true.upper()), True)
         self.assertIs(value.deserialize(true.capitalize()), True)
     for false in ('0', 'no', 'false', 'off'):
         self.assertIs(value.deserialize(false), False)
         self.assertIs(value.deserialize(false.upper()), False)
         self.assertIs(value.deserialize(false.capitalize()), False)
Beispiel #6
0
    def test_serialize_none_as_false(self):
        # TODO We should consider making `None` an invalid value, but we have
        # existing code that assumes it to work like False.

        cv = types.Boolean()

        result = cv.serialize(None)

        assert isinstance(result, str)
        assert result == "false"
Beispiel #7
0
    def test_deserialize_conversion_success(self):
        cv = types.Boolean()

        for true in ("1", "yes", "true", "on"):
            assert cv.deserialize(true) is True
            assert cv.deserialize(true.upper()) is True
            assert cv.deserialize(true.capitalize()) is True

        for false in ("0", "no", "false", "off"):
            assert cv.deserialize(false) is False
            assert cv.deserialize(false.upper()) is False
            assert cv.deserialize(false.capitalize()) is False
Beispiel #8
0
 def test_serialize_false(self):
     value = types.Boolean()
     result = value.serialize(False)
     self.assertEqual(b'false', result)
     self.assertIsInstance(result, bytes)
Beispiel #9
0
 def test_serialize_true(self):
     value = types.Boolean()
     result = value.serialize(True)
     self.assertEqual(b'true', result)
     self.assertIsInstance(result, bytes)
Beispiel #10
0
 def test_deserialize_conversion_failure(self):
     value = types.Boolean()
     self.assertRaises(ValueError, value.deserialize, 'nope')
     self.assertRaises(ValueError, value.deserialize, 'sure')
     self.assertRaises(ValueError, value.deserialize, '')
Beispiel #11
0
    def test_deserialize_respects_optional(self):
        cv = types.Boolean(optional=True)

        assert cv.deserialize("") is None
Beispiel #12
0
    def test_deserialize_enforces_required(self):
        cv = types.Boolean()

        with pytest.raises(ValueError):
            cv.deserialize("")
Beispiel #13
0
 def test_deserialize_respects_optional(self):
     value = types.Boolean(optional=True)
     self.assertEqual(None, value.deserialize(''))