@@ -26,43 +26,72 @@ def _get_target_class():
2626 def _make_one (self , * args , ** kw ):
2727 return self ._get_target_class ()(* args , ** kw )
2828
29- def test_ctor_defaults (self ):
29+ def test_constructor_defaults (self ):
3030 field = self ._make_one ('test' , 'STRING' )
31- self .assertEqual (field .name , 'test' )
32- self .assertEqual (field .field_type , 'STRING' )
33- self .assertEqual (field .mode , 'NULLABLE' )
34- self .assertIsNone (field .description )
35- self .assertEqual (field .fields , ())
31+ self .assertEqual (field ._name , 'test' )
32+ self .assertEqual (field ._field_type , 'STRING' )
33+ self .assertEqual (field ._mode , 'NULLABLE' )
34+ self .assertIsNone (field ._description )
35+ self .assertEqual (field ._fields , ())
3636
37- def test_ctor_explicit (self ):
37+ def test_constructor_explicit (self ):
3838 field = self ._make_one ('test' , 'STRING' , mode = 'REQUIRED' ,
3939 description = 'Testing' )
40- self .assertEqual (field .name , 'test' )
41- self .assertEqual (field .field_type , 'STRING' )
42- self .assertEqual (field .mode , 'REQUIRED' )
43- self .assertEqual (field .description , 'Testing' )
44- self .assertEqual (field .fields , ())
45-
46- def test_ctor_subfields (self ):
40+ self .assertEqual (field ._name , 'test' )
41+ self .assertEqual (field ._field_type , 'STRING' )
42+ self .assertEqual (field ._mode , 'REQUIRED' )
43+ self .assertEqual (field ._description , 'Testing' )
44+ self .assertEqual (field ._fields , ())
45+
46+ def test_constructor_subfields (self ):
47+ sub_field1 = self ._make_one ('area_code' , 'STRING' )
48+ sub_field2 = self ._make_one ('local_number' , 'STRING' )
4749 field = self ._make_one (
48- 'phone_number' , 'RECORD' ,
49- fields = [self ._make_one ('area_code' , 'STRING' ),
50- self ._make_one ('local_number' , 'STRING' )])
51- self .assertEqual (field .name , 'phone_number' )
52- self .assertEqual (field .field_type , 'RECORD' )
53- self .assertEqual (field .mode , 'NULLABLE' )
54- self .assertIsNone (field .description )
55- self .assertEqual (len (field .fields ), 2 )
56- self .assertEqual (field .fields [0 ].name , 'area_code' )
57- self .assertEqual (field .fields [0 ].field_type , 'STRING' )
58- self .assertEqual (field .fields [0 ].mode , 'NULLABLE' )
59- self .assertIsNone (field .fields [0 ].description )
60- self .assertEqual (field .fields [0 ].fields , ())
61- self .assertEqual (field .fields [1 ].name , 'local_number' )
62- self .assertEqual (field .fields [1 ].field_type , 'STRING' )
63- self .assertEqual (field .fields [1 ].mode , 'NULLABLE' )
64- self .assertIsNone (field .fields [1 ].description )
65- self .assertEqual (field .fields [1 ].fields , ())
50+ 'phone_number' ,
51+ 'RECORD' ,
52+ fields = [sub_field1 , sub_field2 ],
53+ )
54+ self .assertEqual (field ._name , 'phone_number' )
55+ self .assertEqual (field ._field_type , 'RECORD' )
56+ self .assertEqual (field ._mode , 'NULLABLE' )
57+ self .assertIsNone (field ._description )
58+ self .assertEqual (len (field ._fields ), 2 )
59+ self .assertIs (field ._fields [0 ], sub_field1 )
60+ self .assertIs (field ._fields [1 ], sub_field2 )
61+
62+ def test_name_property (self ):
63+ name = 'lemon-ness'
64+ schema_field = self ._make_one (name , 'INTEGER' )
65+ self .assertIs (schema_field .name , name )
66+
67+ def test_field_type_property (self ):
68+ field_type = 'BOOLEAN'
69+ schema_field = self ._make_one ('whether' , field_type )
70+ self .assertIs (schema_field .field_type , field_type )
71+
72+ def test_mode_property (self ):
73+ mode = 'REPEATED'
74+ schema_field = self ._make_one ('again' , 'FLOAT' , mode = mode )
75+ self .assertIs (schema_field .mode , mode )
76+
77+ def test_description_property (self ):
78+ description = 'It holds some data.'
79+ schema_field = self ._make_one (
80+ 'do' , 'TIMESTAMP' , description = description )
81+ self .assertIs (schema_field .description , description )
82+
83+ def test_fields_property (self ):
84+ sub_field1 = self ._make_one ('one' , 'STRING' )
85+ sub_field2 = self ._make_one ('fish' , 'INTEGER' )
86+ fields = (sub_field1 , sub_field2 )
87+ schema_field = self ._make_one ('boat' , 'RECORD' , fields = fields )
88+ self .assertIs (schema_field .fields , fields )
89+
90+ def test___eq___wrong_type (self ):
91+ field = self ._make_one ('test' , 'STRING' )
92+ other = object ()
93+ self .assertNotEqual (field , other )
94+ self .assertIs (field .__eq__ (other ), NotImplemented )
6695
6796 def test___eq___name_mismatch (self ):
6897 field = self ._make_one ('test' , 'STRING' )
0 commit comments