@@ -105,6 +105,44 @@ def test_w_value_other(self):
105
105
self .assertFalse (coerced )
106
106
107
107
108
+ class Test_string_from_json (unittest .TestCase ):
109
+
110
+ def _call_fut (self , value , field ):
111
+ from google .cloud .bigquery ._helpers import _string_from_json
112
+ return _string_from_json (value , field )
113
+
114
+ def test_w_none_nullable (self ):
115
+ self .assertIsNone (self ._call_fut (None , _Field ('NULLABLE' )))
116
+
117
+ def test_w_none_required (self ):
118
+ self .assertIsNone (self ._call_fut (None , _Field ('REQUIRED' )))
119
+
120
+ def test_w_string_value (self ):
121
+ coerced = self ._call_fut ('Wonderful!' , object ())
122
+ self .assertEqual (coerced , 'Wonderful!' )
123
+
124
+
125
+ class Test_bytes_from_json (unittest .TestCase ):
126
+
127
+ def _call_fut (self , value , field ):
128
+ from google .cloud .bigquery ._helpers import _bytes_from_json
129
+ return _bytes_from_json (value , field )
130
+
131
+ def test_w_none_nullable (self ):
132
+ self .assertIsNone (self ._call_fut (None , _Field ('NULLABLE' )))
133
+
134
+ def test_w_none_required (self ):
135
+ with self .assertRaises (TypeError ):
136
+ self ._call_fut (None , _Field ('REQUIRED' ))
137
+
138
+ def test_w_base64_encoded_value (self ):
139
+ import base64
140
+ expected = b'Wonderful!'
141
+ encoded = base64 .encodestring (expected )
142
+ coerced = self ._call_fut (encoded , object ())
143
+ self .assertEqual (coerced , expected )
144
+
145
+
108
146
class Test_timestamp_from_json (unittest .TestCase ):
109
147
110
148
def _call_fut (self , value , field ):
@@ -177,6 +215,27 @@ def test_w_string_value(self):
177
215
datetime .date (1987 , 9 , 22 ))
178
216
179
217
218
+ class Test_time_from_json (unittest .TestCase ):
219
+
220
+ def _call_fut (self , value , field ):
221
+ from google .cloud .bigquery ._helpers import _time_from_json
222
+ return _time_from_json (value , field )
223
+
224
+ def test_w_none_nullable (self ):
225
+ self .assertIsNone (self ._call_fut (None , _Field ('NULLABLE' )))
226
+
227
+ def test_w_none_required (self ):
228
+ with self .assertRaises (TypeError ):
229
+ self ._call_fut (None , _Field ('REQUIRED' ))
230
+
231
+ def test_w_string_value (self ):
232
+ import datetime
233
+ coerced = self ._call_fut ('12:12:27' , object ())
234
+ self .assertEqual (
235
+ coerced ,
236
+ datetime .time (12 , 12 , 27 ))
237
+
238
+
180
239
class Test_record_from_json (unittest .TestCase ):
181
240
182
241
def _call_fut (self , value , field ):
@@ -238,23 +297,6 @@ def test_w_record_subfield(self):
238
297
self .assertEqual (coerced , expected )
239
298
240
299
241
- class Test_string_from_json (unittest .TestCase ):
242
-
243
- def _call_fut (self , value , field ):
244
- from google .cloud .bigquery ._helpers import _string_from_json
245
- return _string_from_json (value , field )
246
-
247
- def test_w_none_nullable (self ):
248
- self .assertIsNone (self ._call_fut (None , _Field ('NULLABLE' )))
249
-
250
- def test_w_none_required (self ):
251
- self .assertIsNone (self ._call_fut (None , _Field ('RECORD' )))
252
-
253
- def test_w_string_value (self ):
254
- coerced = self ._call_fut ('Wonderful!' , object ())
255
- self .assertEqual (coerced , 'Wonderful!' )
256
-
257
-
258
300
class Test_row_from_json (unittest .TestCase ):
259
301
260
302
def _call_fut (self , row , schema ):
@@ -471,6 +513,23 @@ def test_w_string(self):
471
513
self .assertEqual (self ._call_fut ('false' ), 'false' )
472
514
473
515
516
+ class Test_bytes_to_json (unittest .TestCase ):
517
+
518
+ def _call_fut (self , value ):
519
+ from google .cloud .bigquery ._helpers import _bytes_to_json
520
+ return _bytes_to_json (value )
521
+
522
+ def test_w_non_bytes (self ):
523
+ non_bytes = object ()
524
+ self .assertIs (self ._call_fut (non_bytes ), non_bytes )
525
+
526
+ def test_w_bytes (self ):
527
+ import base64
528
+ source = b'source'
529
+ expected = base64 .encodestring (source )
530
+ self .assertEqual (self ._call_fut (source ), expected )
531
+
532
+
474
533
class Test_timestamp_to_json (unittest .TestCase ):
475
534
476
535
def _call_fut (self , value ):
@@ -522,6 +581,22 @@ def test_w_datetime(self):
522
581
self .assertEqual (self ._call_fut (when ), '2016-12-03' )
523
582
524
583
584
+ class Test_time_to_json (unittest .TestCase ):
585
+
586
+ def _call_fut (self , value ):
587
+ from google .cloud .bigquery ._helpers import _time_to_json
588
+ return _time_to_json (value )
589
+
590
+ def test_w_string (self ):
591
+ RFC3339 = '12:13:41'
592
+ self .assertEqual (self ._call_fut (RFC3339 ), RFC3339 )
593
+
594
+ def test_w_datetime (self ):
595
+ import datetime
596
+ when = datetime .time (12 , 13 , 41 )
597
+ self .assertEqual (self ._call_fut (when ), '12:13:41' )
598
+
599
+
525
600
class Test_ConfigurationProperty (unittest .TestCase ):
526
601
527
602
@staticmethod
0 commit comments