@@ -420,27 +420,27 @@ def _call_fut(self, row, schema):
420
420
def test_w_single_scalar_column (self ):
421
421
# SELECT 1 AS col
422
422
col = _Field ("REQUIRED" , "col" , "INTEGER" )
423
- row = {u "f" : [{u "v" : u "1" }]}
423
+ row = {"f" : [{"v" : "1" }]}
424
424
self .assertEqual (self ._call_fut (row , schema = [col ]), (1 ,))
425
425
426
426
def test_w_single_scalar_geography_column (self ):
427
427
# SELECT 1 AS col
428
428
col = _Field ("REQUIRED" , "geo" , "GEOGRAPHY" )
429
- row = {u "f" : [{u "v" : u "POINT(1, 2)" }]}
429
+ row = {"f" : [{"v" : "POINT(1, 2)" }]}
430
430
self .assertEqual (self ._call_fut (row , schema = [col ]), ("POINT(1, 2)" ,))
431
431
432
432
def test_w_single_struct_column (self ):
433
433
# SELECT (1, 2) AS col
434
434
sub_1 = _Field ("REQUIRED" , "sub_1" , "INTEGER" )
435
435
sub_2 = _Field ("REQUIRED" , "sub_2" , "INTEGER" )
436
436
col = _Field ("REQUIRED" , "col" , "RECORD" , fields = [sub_1 , sub_2 ])
437
- row = {u "f" : [{u "v" : {u "f" : [{u "v" : u "1" }, {u "v" : u "2" }]}}]}
437
+ row = {"f" : [{"v" : {"f" : [{"v" : "1" }, {"v" : "2" }]}}]}
438
438
self .assertEqual (self ._call_fut (row , schema = [col ]), ({"sub_1" : 1 , "sub_2" : 2 },))
439
439
440
440
def test_w_single_array_column (self ):
441
441
# SELECT [1, 2, 3] as col
442
442
col = _Field ("REPEATED" , "col" , "INTEGER" )
443
- row = {u "f" : [{u "v" : [{u "v" : u "1" }, {u "v" : u "2" }, {u "v" : u "3" }]}]}
443
+ row = {"f" : [{"v" : [{"v" : "1" }, {"v" : "2" }, {"v" : "3" }]}]}
444
444
self .assertEqual (self ._call_fut (row , schema = [col ]), ([1 , 2 , 3 ],))
445
445
446
446
def test_w_struct_w_nested_array_column (self ):
@@ -450,21 +450,21 @@ def test_w_struct_w_nested_array_column(self):
450
450
third = _Field ("REPEATED" , "third" , "INTEGER" )
451
451
col = _Field ("REQUIRED" , "col" , "RECORD" , fields = [first , second , third ])
452
452
row = {
453
- u "f" : [
453
+ "f" : [
454
454
{
455
- u "v" : {
456
- u "f" : [
457
- {u "v" : [{u "v" : u "1" }, {u "v" : u "2" }]},
458
- {u "v" : u "3" },
459
- {u "v" : [{u "v" : u "4" }, {u "v" : u "5" }]},
455
+ "v" : {
456
+ "f" : [
457
+ {"v" : [{"v" : "1" }, {"v" : "2" }]},
458
+ {"v" : "3" },
459
+ {"v" : [{"v" : "4" }, {"v" : "5" }]},
460
460
]
461
461
}
462
462
}
463
463
]
464
464
}
465
465
self .assertEqual (
466
466
self ._call_fut (row , schema = [col ]),
467
- ({u "first" : [1 , 2 ], u "second" : 3 , u "third" : [4 , 5 ]},),
467
+ ({"first" : [1 , 2 ], "second" : 3 , "third" : [4 , 5 ]},),
468
468
)
469
469
470
470
def test_w_array_of_struct (self ):
@@ -474,11 +474,11 @@ def test_w_array_of_struct(self):
474
474
third = _Field ("REQUIRED" , "third" , "INTEGER" )
475
475
col = _Field ("REPEATED" , "col" , "RECORD" , fields = [first , second , third ])
476
476
row = {
477
- u "f" : [
477
+ "f" : [
478
478
{
479
- u "v" : [
480
- {u "v" : {u "f" : [{u "v" : u "1" }, {u "v" : u "2" }, {u "v" : u "3" }]}},
481
- {u "v" : {u "f" : [{u "v" : u "4" }, {u "v" : u "5" }, {u "v" : u "6" }]}},
479
+ "v" : [
480
+ {"v" : {"f" : [{"v" : "1" }, {"v" : "2" }, {"v" : "3" }]}},
481
+ {"v" : {"f" : [{"v" : "4" }, {"v" : "5" }, {"v" : "6" }]}},
482
482
]
483
483
}
484
484
]
@@ -487,8 +487,8 @@ def test_w_array_of_struct(self):
487
487
self ._call_fut (row , schema = [col ]),
488
488
(
489
489
[
490
- {u "first" : 1 , u "second" : 2 , u "third" : 3 },
491
- {u "first" : 4 , u "second" : 5 , u "third" : 6 },
490
+ {"first" : 1 , "second" : 2 , "third" : 3 },
491
+ {"first" : 4 , "second" : 5 , "third" : 6 },
492
492
],
493
493
),
494
494
)
@@ -499,32 +499,25 @@ def test_w_array_of_struct_w_array(self):
499
499
second = _Field ("REQUIRED" , "second" , "INTEGER" )
500
500
col = _Field ("REPEATED" , "col" , "RECORD" , fields = [first , second ])
501
501
row = {
502
- u "f" : [
502
+ "f" : [
503
503
{
504
- u"v" : [
505
- {
506
- u"v" : {
507
- u"f" : [
508
- {u"v" : [{u"v" : u"1" }, {u"v" : u"2" }, {u"v" : u"3" }]},
509
- {u"v" : u"4" },
510
- ]
511
- }
512
- },
504
+ "v" : [
513
505
{
514
- u "v" : {
515
- u "f" : [
516
- {u "v" : [{u "v" : u"5 " }, {u "v" : u"6 " }]},
517
- {u "v" : u"7 " },
506
+ "v" : {
507
+ "f" : [
508
+ {"v" : [{"v" : "1 " }, {"v" : "2" }, { "v" : "3 " }]},
509
+ {"v" : "4 " },
518
510
]
519
511
}
520
512
},
513
+ {"v" : {"f" : [{"v" : [{"v" : "5" }, {"v" : "6" }]}, {"v" : "7" }]}},
521
514
]
522
515
}
523
516
]
524
517
}
525
518
self .assertEqual (
526
519
self ._call_fut (row , schema = [col ]),
527
- ([{u "first" : [1 , 2 , 3 ], u "second" : 4 }, {u "first" : [5 , 6 ], u "second" : 7 }],),
520
+ ([{"first" : [1 , 2 , 3 ], "second" : 4 }, {"first" : [5 , 6 ], "second" : 7 }],),
528
521
)
529
522
530
523
@@ -673,7 +666,7 @@ def test_w_non_bytes(self):
673
666
674
667
def test_w_bytes (self ):
675
668
source = b"source"
676
- expected = u "c291cmNl"
669
+ expected = "c291cmNl"
677
670
converted = self ._call_fut (source )
678
671
self .assertEqual (converted , expected )
679
672
@@ -726,7 +719,7 @@ def test_w_string(self):
726
719
ZULU = "2016-12-20 15:58:27.339328+00:00"
727
720
self .assertEqual (self ._call_fut (ZULU ), ZULU )
728
721
729
- def test_w_datetime (self ):
722
+ def test_w_datetime_no_zone (self ):
730
723
when = datetime .datetime (2016 , 12 , 20 , 15 , 58 , 27 , 339328 )
731
724
self .assertEqual (self ._call_fut (when ), "2016-12-20T15:58:27.339328Z" )
732
725
@@ -736,6 +729,14 @@ def test_w_datetime_w_utc_zone(self):
736
729
when = datetime .datetime (2020 , 11 , 17 , 1 , 6 , 52 , 353795 , tzinfo = UTC )
737
730
self .assertEqual (self ._call_fut (when ), "2020-11-17T01:06:52.353795Z" )
738
731
732
+ def test_w_datetime_w_non_utc_zone (self ):
733
+ class EstZone (datetime .tzinfo ):
734
+ def utcoffset (self , _ ):
735
+ return datetime .timedelta (minutes = - 300 )
736
+
737
+ when = datetime .datetime (2020 , 11 , 17 , 1 , 6 , 52 , 353795 , tzinfo = EstZone ())
738
+ self .assertEqual (self ._call_fut (when ), "2020-11-17T06:06:52.353795Z" )
739
+
739
740
740
741
class Test_datetime_to_json (unittest .TestCase ):
741
742
def _call_fut (self , value ):
@@ -753,6 +754,14 @@ def test_w_datetime(self):
753
754
when = datetime .datetime (2016 , 12 , 3 , 14 , 11 , 27 , 123456 , tzinfo = UTC )
754
755
self .assertEqual (self ._call_fut (when ), "2016-12-03T14:11:27.123456" )
755
756
757
+ def test_w_datetime_w_non_utc_zone (self ):
758
+ class EstZone (datetime .tzinfo ):
759
+ def utcoffset (self , _ ):
760
+ return datetime .timedelta (minutes = - 300 )
761
+
762
+ when = datetime .datetime (2016 , 12 , 3 , 14 , 11 , 27 , 123456 , tzinfo = EstZone ())
763
+ self .assertEqual (self ._call_fut (when ), "2016-12-03T19:11:27.123456" )
764
+
756
765
757
766
class Test_date_to_json (unittest .TestCase ):
758
767
def _call_fut (self , value ):
0 commit comments