16
16
import datetime
17
17
18
18
import pytest
19
- import pytz
20
19
21
20
from google .api_core import datetime_helpers
22
21
from google .protobuf import timestamp_pb2
@@ -31,7 +30,7 @@ def test_utcnow():
31
30
32
31
33
32
def test_to_milliseconds ():
34
- dt = datetime .datetime (1970 , 1 , 1 , 0 , 0 , 1 , tzinfo = pytz .utc )
33
+ dt = datetime .datetime (1970 , 1 , 1 , 0 , 0 , 1 , tzinfo = datetime . timezone .utc )
35
34
assert datetime_helpers .to_milliseconds (dt ) == 1000
36
35
37
36
@@ -42,7 +41,7 @@ def test_to_microseconds():
42
41
43
42
44
43
def test_to_microseconds_non_utc ():
45
- zone = pytz . FixedOffset ( - 1 )
44
+ zone = datetime . timezone ( datetime . timedelta ( minutes = - 1 ) )
46
45
dt = datetime .datetime (1970 , 1 , 1 , 0 , 0 , 0 , tzinfo = zone )
47
46
assert datetime_helpers .to_microseconds (dt ) == ONE_MINUTE_IN_MICROSECONDS
48
47
@@ -56,7 +55,7 @@ def test_to_microseconds_naive():
56
55
def test_from_microseconds ():
57
56
five_mins_from_epoch_in_microseconds = 5 * ONE_MINUTE_IN_MICROSECONDS
58
57
five_mins_from_epoch_datetime = datetime .datetime (
59
- 1970 , 1 , 1 , 0 , 5 , 0 , tzinfo = pytz .utc
58
+ 1970 , 1 , 1 , 0 , 5 , 0 , tzinfo = datetime . timezone .utc
60
59
)
61
60
62
61
result = datetime_helpers .from_microseconds (five_mins_from_epoch_in_microseconds )
@@ -78,28 +77,28 @@ def test_from_iso8601_time():
78
77
def test_from_rfc3339 ():
79
78
value = "2009-12-17T12:44:32.123456Z"
80
79
assert datetime_helpers .from_rfc3339 (value ) == datetime .datetime (
81
- 2009 , 12 , 17 , 12 , 44 , 32 , 123456 , pytz .utc
80
+ 2009 , 12 , 17 , 12 , 44 , 32 , 123456 , datetime . timezone .utc
82
81
)
83
82
84
83
85
84
def test_from_rfc3339_nanos ():
86
85
value = "2009-12-17T12:44:32.123456Z"
87
86
assert datetime_helpers .from_rfc3339_nanos (value ) == datetime .datetime (
88
- 2009 , 12 , 17 , 12 , 44 , 32 , 123456 , pytz .utc
87
+ 2009 , 12 , 17 , 12 , 44 , 32 , 123456 , datetime . timezone .utc
89
88
)
90
89
91
90
92
91
def test_from_rfc3339_without_nanos ():
93
92
value = "2009-12-17T12:44:32Z"
94
93
assert datetime_helpers .from_rfc3339 (value ) == datetime .datetime (
95
- 2009 , 12 , 17 , 12 , 44 , 32 , 0 , pytz .utc
94
+ 2009 , 12 , 17 , 12 , 44 , 32 , 0 , datetime . timezone .utc
96
95
)
97
96
98
97
99
98
def test_from_rfc3339_nanos_without_nanos ():
100
99
value = "2009-12-17T12:44:32Z"
101
100
assert datetime_helpers .from_rfc3339_nanos (value ) == datetime .datetime (
102
- 2009 , 12 , 17 , 12 , 44 , 32 , 0 , pytz .utc
101
+ 2009 , 12 , 17 , 12 , 44 , 32 , 0 , datetime . timezone .utc
103
102
)
104
103
105
104
@@ -119,7 +118,7 @@ def test_from_rfc3339_nanos_without_nanos():
119
118
def test_from_rfc3339_with_truncated_nanos (truncated , micros ):
120
119
value = "2009-12-17T12:44:32.{}Z" .format (truncated )
121
120
assert datetime_helpers .from_rfc3339 (value ) == datetime .datetime (
122
- 2009 , 12 , 17 , 12 , 44 , 32 , micros , pytz .utc
121
+ 2009 , 12 , 17 , 12 , 44 , 32 , micros , datetime . timezone .utc
123
122
)
124
123
125
124
@@ -148,7 +147,7 @@ def test_from_rfc3339_nanos_is_deprecated():
148
147
def test_from_rfc3339_nanos_with_truncated_nanos (truncated , micros ):
149
148
value = "2009-12-17T12:44:32.{}Z" .format (truncated )
150
149
assert datetime_helpers .from_rfc3339_nanos (value ) == datetime .datetime (
151
- 2009 , 12 , 17 , 12 , 44 , 32 , micros , pytz .utc
150
+ 2009 , 12 , 17 , 12 , 44 , 32 , micros , datetime . timezone .utc
152
151
)
153
152
154
153
@@ -171,20 +170,20 @@ def test_to_rfc3339():
171
170
172
171
173
172
def test_to_rfc3339_with_utc ():
174
- value = datetime .datetime (2016 , 4 , 5 , 13 , 30 , 0 , tzinfo = pytz .utc )
173
+ value = datetime .datetime (2016 , 4 , 5 , 13 , 30 , 0 , tzinfo = datetime . timezone .utc )
175
174
expected = "2016-04-05T13:30:00.000000Z"
176
175
assert datetime_helpers .to_rfc3339 (value , ignore_zone = False ) == expected
177
176
178
177
179
178
def test_to_rfc3339_with_non_utc ():
180
- zone = pytz . FixedOffset ( - 60 )
179
+ zone = datetime . timezone ( datetime . timedelta ( minutes = - 60 ) )
181
180
value = datetime .datetime (2016 , 4 , 5 , 13 , 30 , 0 , tzinfo = zone )
182
181
expected = "2016-04-05T14:30:00.000000Z"
183
182
assert datetime_helpers .to_rfc3339 (value , ignore_zone = False ) == expected
184
183
185
184
186
185
def test_to_rfc3339_with_non_utc_ignore_zone ():
187
- zone = pytz . FixedOffset ( - 60 )
186
+ zone = datetime . timezone ( datetime . timedelta ( minutes = - 60 ) )
188
187
value = datetime .datetime (2016 , 4 , 5 , 13 , 30 , 0 , tzinfo = zone )
189
188
expected = "2016-04-05T13:30:00.000000Z"
190
189
assert datetime_helpers .to_rfc3339 (value , ignore_zone = True ) == expected
@@ -283,7 +282,7 @@ def test_from_rfc3339_w_invalid():
283
282
def test_from_rfc3339_wo_fraction ():
284
283
timestamp = "2016-12-20T21:13:47Z"
285
284
expected = datetime_helpers .DatetimeWithNanoseconds (
286
- 2016 , 12 , 20 , 21 , 13 , 47 , tzinfo = pytz . UTC
285
+ 2016 , 12 , 20 , 21 , 13 , 47 , tzinfo = datetime . timezone . utc
287
286
)
288
287
stamp = datetime_helpers .DatetimeWithNanoseconds .from_rfc3339 (timestamp )
289
288
assert stamp == expected
@@ -292,7 +291,7 @@ def test_from_rfc3339_wo_fraction():
292
291
def test_from_rfc3339_w_partial_precision ():
293
292
timestamp = "2016-12-20T21:13:47.1Z"
294
293
expected = datetime_helpers .DatetimeWithNanoseconds (
295
- 2016 , 12 , 20 , 21 , 13 , 47 , microsecond = 100000 , tzinfo = pytz . UTC
294
+ 2016 , 12 , 20 , 21 , 13 , 47 , microsecond = 100000 , tzinfo = datetime . timezone . utc
296
295
)
297
296
stamp = datetime_helpers .DatetimeWithNanoseconds .from_rfc3339 (timestamp )
298
297
assert stamp == expected
@@ -301,7 +300,7 @@ def test_from_rfc3339_w_partial_precision():
301
300
def test_from_rfc3339_w_full_precision ():
302
301
timestamp = "2016-12-20T21:13:47.123456789Z"
303
302
expected = datetime_helpers .DatetimeWithNanoseconds (
304
- 2016 , 12 , 20 , 21 , 13 , 47 , nanosecond = 123456789 , tzinfo = pytz . UTC
303
+ 2016 , 12 , 20 , 21 , 13 , 47 , nanosecond = 123456789 , tzinfo = datetime . timezone . utc
305
304
)
306
305
stamp = datetime_helpers .DatetimeWithNanoseconds .from_rfc3339 (timestamp )
307
306
assert stamp == expected
@@ -332,7 +331,9 @@ def test_timestamp_pb_wo_nanos_naive():
332
331
stamp = datetime_helpers .DatetimeWithNanoseconds (
333
332
2016 , 12 , 20 , 21 , 13 , 47 , 123456
334
333
)
335
- delta = stamp .replace (tzinfo = pytz .UTC ) - datetime_helpers ._UTC_EPOCH
334
+ delta = (
335
+ stamp .replace (tzinfo = datetime .timezone .utc ) - datetime_helpers ._UTC_EPOCH
336
+ )
336
337
seconds = int (delta .total_seconds ())
337
338
nanos = 123456000
338
339
timestamp = timestamp_pb2 .Timestamp (seconds = seconds , nanos = nanos )
@@ -341,7 +342,7 @@ def test_timestamp_pb_wo_nanos_naive():
341
342
@staticmethod
342
343
def test_timestamp_pb_w_nanos ():
343
344
stamp = datetime_helpers .DatetimeWithNanoseconds (
344
- 2016 , 12 , 20 , 21 , 13 , 47 , nanosecond = 123456789 , tzinfo = pytz . UTC
345
+ 2016 , 12 , 20 , 21 , 13 , 47 , nanosecond = 123456789 , tzinfo = datetime . timezone . utc
345
346
)
346
347
delta = stamp - datetime_helpers ._UTC_EPOCH
347
348
timestamp = timestamp_pb2 .Timestamp (
@@ -351,7 +352,9 @@ def test_timestamp_pb_w_nanos():
351
352
352
353
@staticmethod
353
354
def test_from_timestamp_pb_wo_nanos ():
354
- when = datetime .datetime (2016 , 12 , 20 , 21 , 13 , 47 , 123456 , tzinfo = pytz .UTC )
355
+ when = datetime .datetime (
356
+ 2016 , 12 , 20 , 21 , 13 , 47 , 123456 , tzinfo = datetime .timezone .utc
357
+ )
355
358
delta = when - datetime_helpers ._UTC_EPOCH
356
359
seconds = int (delta .total_seconds ())
357
360
timestamp = timestamp_pb2 .Timestamp (seconds = seconds )
@@ -361,11 +364,13 @@ def test_from_timestamp_pb_wo_nanos():
361
364
assert _to_seconds (when ) == _to_seconds (stamp )
362
365
assert stamp .microsecond == 0
363
366
assert stamp .nanosecond == 0
364
- assert stamp .tzinfo == pytz . UTC
367
+ assert stamp .tzinfo == datetime . timezone . utc
365
368
366
369
@staticmethod
367
370
def test_from_timestamp_pb_w_nanos ():
368
- when = datetime .datetime (2016 , 12 , 20 , 21 , 13 , 47 , 123456 , tzinfo = pytz .UTC )
371
+ when = datetime .datetime (
372
+ 2016 , 12 , 20 , 21 , 13 , 47 , 123456 , tzinfo = datetime .timezone .utc
373
+ )
369
374
delta = when - datetime_helpers ._UTC_EPOCH
370
375
seconds = int (delta .total_seconds ())
371
376
timestamp = timestamp_pb2 .Timestamp (seconds = seconds , nanos = 123456789 )
@@ -375,7 +380,7 @@ def test_from_timestamp_pb_w_nanos():
375
380
assert _to_seconds (when ) == _to_seconds (stamp )
376
381
assert stamp .microsecond == 123456
377
382
assert stamp .nanosecond == 123456789
378
- assert stamp .tzinfo == pytz . UTC
383
+ assert stamp .tzinfo == datetime . timezone . utc
379
384
380
385
381
386
def _to_seconds (value ):
@@ -387,5 +392,5 @@ def _to_seconds(value):
387
392
Returns:
388
393
int: Microseconds since the unix epoch.
389
394
"""
390
- assert value .tzinfo is pytz . UTC
395
+ assert value .tzinfo is datetime . timezone . utc
391
396
return calendar .timegm (value .timetuple ())
0 commit comments