def test_attribute_with_many_non_nullable_types(self): EXPECTED_TYPES = (str, int, list) NOT_EXPECTED_TYPES = (float, dict, type(None)) sut = of(*EXPECTED_TYPES) for t in EXPECTED_TYPES: self.assertTrue(sut.is_valid(t())) for t in NOT_EXPECTED_TYPES: self.assertFalse(sut.is_valid(t()))
def test_attribute_with_one_nullable_type(self): EXPECTED_TYPES = (str, type(None)) NOT_EXPECTED_TYPES = ( int, float, list, dict, ) sut = of(*EXPECTED_TYPES, nullable=True) for t in EXPECTED_TYPES: self.assertTrue(sut.is_valid(t())) for t in NOT_EXPECTED_TYPES: self.assertFalse(sut.is_valid(t()))
class Pet(ValueObject): name = attributes.of(str) owner = attributes.of(Person, nullable=True)
class Person(ValueObject): first_name = attributes.of(str) last_name = attributes.of(str) age = attributes.of(int)
class Point(ValueObject): x = attributes.of(int, float) y = attributes.of(int, float)