@@ -22,6 +22,7 @@ class ExampleModel(models.DomainModel):
2222 field = fields .Field ()
2323 field_default = fields .Field (default = 123 )
2424 field_default_callable = fields .Field (default = time .time )
25+ field_required_default = fields .Field (default = 123 , required = True )
2526
2627 bool_field = fields .Bool ()
2728
@@ -38,6 +39,11 @@ class ExampleModel(models.DomainModel):
3839 collection_field = fields .Collection (RelatedModel )
3940
4041
42+ class RequiredFieldModel (models .DomainModel ):
43+ """Example model for required fields."""
44+ field_required = fields .Field (required = True )
45+
46+
4147class FieldTest (unittest .TestCase ):
4248 """Base field tests."""
4349
@@ -81,6 +87,37 @@ def test_field_default_callable(self):
8187 self .assertGreater (model2 .field_default_callable ,
8288 model1 .field_default_callable )
8389
90+ def test_field_required (self ):
91+ """Test required field with default value."""
92+ model = ExampleModel ()
93+ self .assertEquals (model .field_required_default , 123 )
94+
95+ def test_field_required_set_valid (self ):
96+ """Test required field with valid value."""
97+ model = ExampleModel ()
98+ model .field_required_default = False
99+ self .assertIs (model .field_required_default , False )
100+
101+ def test_field_required_set_invalid (self ):
102+ """Test required field with invalid value."""
103+ model = ExampleModel ()
104+ with self .assertRaises (AttributeError ):
105+ model .field_required_default = None
106+
107+ def test_field_required_init_valid_model (self ):
108+ """Test required field with valid value as model keyword."""
109+ model = RequiredFieldModel (field_required = False )
110+ self .assertIs (model .field_required , False )
111+ model .field_required = 123
112+ self .assertEqual (model .field_required , 123 )
113+
114+ def test_field_required_init_invalid_model (self ):
115+ """Test required field with invalid value as model keyword."""
116+ with self .assertRaises (AttributeError ):
117+ RequiredFieldModel ()
118+ with self .assertRaises (AttributeError ):
119+ RequiredFieldModel (field_required = None )
120+
84121
85122class BoolTest (unittest .TestCase ):
86123 """Bool field tests."""
0 commit comments