Skip to content

Commit 587af5f

Browse files
csesshjadchaar
andauthored
#1178: changes to address datetime.utcnow deprecation warning (#1182)
Co-authored-by: Jad Chaar <[email protected]>
1 parent 7225592 commit 587af5f

File tree

6 files changed

+27
-23
lines changed

6 files changed

+27
-23
lines changed

arrow/arrow.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from datetime import date
1212
from datetime import datetime as dt_datetime
1313
from datetime import time as dt_time
14-
from datetime import timedelta
14+
from datetime import timedelta, timezone
1515
from datetime import tzinfo as dt_tzinfo
1616
from math import trunc
1717
from time import struct_time
@@ -1144,7 +1144,7 @@ def humanize(
11441144
locale = locales.get_locale(locale)
11451145

11461146
if other is None:
1147-
utc = dt_datetime.utcnow().replace(tzinfo=dateutil_tz.tzutc())
1147+
utc = dt_datetime.now(timezone.utc).replace(tzinfo=dateutil_tz.tzutc())
11481148
dt = utc.astimezone(self._datetime.tzinfo)
11491149

11501150
elif isinstance(other, Arrow):

tests/test_arrow.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pickle
22
import sys
33
import time
4-
from datetime import date, datetime, timedelta
4+
from datetime import date, datetime, timedelta, timezone
55
from typing import List
66

77
import dateutil
@@ -91,7 +91,7 @@ def test_utcnow(self):
9191
result = arrow.Arrow.utcnow()
9292

9393
assert_datetime_equality(
94-
result._datetime, datetime.utcnow().replace(tzinfo=tz.tzutc())
94+
result._datetime, datetime.now(timezone.utc).replace(tzinfo=tz.tzutc())
9595
)
9696

9797
assert result.fold == 0
@@ -124,7 +124,7 @@ def test_utcfromtimestamp(self):
124124

125125
result = arrow.Arrow.utcfromtimestamp(timestamp)
126126
assert_datetime_equality(
127-
result._datetime, datetime.utcnow().replace(tzinfo=tz.tzutc())
127+
result._datetime, datetime.now(timezone.utc).replace(tzinfo=tz.tzutc())
128128
)
129129

130130
with pytest.raises(ValueError):
@@ -1055,7 +1055,11 @@ def test_imaginary(self):
10551055

10561056
def test_unsupported(self):
10571057
with pytest.raises(ValueError):
1058-
next(arrow.Arrow.range("abc", datetime.utcnow(), datetime.utcnow()))
1058+
next(
1059+
arrow.Arrow.range(
1060+
"abc", datetime.now(timezone.utc), datetime.now(timezone.utc)
1061+
)
1062+
)
10591063

10601064
def test_range_over_months_ending_on_different_days(self):
10611065
# regression test for issue #842
@@ -2889,7 +2893,7 @@ def test_get_datetime(self):
28892893
get_datetime = arrow.Arrow._get_datetime
28902894

28912895
arw = arrow.Arrow.utcnow()
2892-
dt = datetime.utcnow()
2896+
dt = datetime.now(timezone.utc)
28932897
timestamp = time.time()
28942898

28952899
assert get_datetime(arw) == arw.datetime

tests/test_factory.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import time
2-
from datetime import date, datetime
2+
from datetime import date, datetime, timezone
33
from decimal import Decimal
44

55
import pytest
@@ -15,7 +15,7 @@
1515
class TestGet:
1616
def test_no_args(self):
1717
assert_datetime_equality(
18-
self.factory.get(), datetime.utcnow().replace(tzinfo=tz.tzutc())
18+
self.factory.get(), datetime.now(timezone.utc).replace(tzinfo=tz.tzutc())
1919
)
2020

2121
def test_timestamp_one_arg_no_arg(self):
@@ -31,7 +31,7 @@ def test_one_arg_none(self):
3131
def test_struct_time(self):
3232
assert_datetime_equality(
3333
self.factory.get(time.gmtime()),
34-
datetime.utcnow().replace(tzinfo=tz.tzutc()),
34+
datetime.now(timezone.utc).replace(tzinfo=tz.tzutc()),
3535
)
3636

3737
def test_one_arg_timestamp(self):
@@ -91,7 +91,7 @@ def test_one_arg_arrow(self):
9191
assert arw == result
9292

9393
def test_one_arg_datetime(self):
94-
dt = datetime.utcnow().replace(tzinfo=tz.tzutc())
94+
dt = datetime.now(timezone.utc).replace(tzinfo=tz.tzutc())
9595

9696
assert self.factory.get(dt) == dt
9797

@@ -103,7 +103,7 @@ def test_one_arg_date(self):
103103

104104
def test_one_arg_tzinfo(self):
105105
self.expected = (
106-
datetime.utcnow()
106+
datetime.now(timezone.utc)
107107
.replace(tzinfo=tz.tzutc())
108108
.astimezone(tz.gettz("US/Pacific"))
109109
)
@@ -123,7 +123,7 @@ def test_one_arg_dateparser_datetime(self):
123123

124124
def test_kwarg_tzinfo(self):
125125
self.expected = (
126-
datetime.utcnow()
126+
datetime.now(timezone.utc)
127127
.replace(tzinfo=tz.tzutc())
128128
.astimezone(tz.gettz("US/Pacific"))
129129
)
@@ -134,7 +134,7 @@ def test_kwarg_tzinfo(self):
134134

135135
def test_kwarg_tzinfo_string(self):
136136
self.expected = (
137-
datetime.utcnow()
137+
datetime.now(timezone.utc)
138138
.replace(tzinfo=tz.tzutc())
139139
.astimezone(tz.gettz("US/Pacific"))
140140
)
@@ -199,7 +199,7 @@ def test_one_arg_iso_calendar_tzinfo_kwarg(self):
199199
assert_datetime_equality(result, expected)
200200

201201
def test_one_arg_iso_str(self):
202-
dt = datetime.utcnow()
202+
dt = datetime.now(timezone.utc)
203203

204204
assert_datetime_equality(
205205
self.factory.get(dt.isoformat()), dt.replace(tzinfo=tz.tzutc())
@@ -273,7 +273,7 @@ def test_two_args_date_tz_str(self):
273273

274274
def test_two_args_datetime_other(self):
275275
with pytest.raises(TypeError):
276-
self.factory.get(datetime.utcnow(), object())
276+
self.factory.get(datetime.now(timezone.utc), object())
277277

278278
def test_two_args_date_other(self):
279279
with pytest.raises(TypeError):
@@ -374,7 +374,7 @@ class TestUtcNow:
374374
def test_utcnow(self):
375375
assert_datetime_equality(
376376
self.factory.utcnow()._datetime,
377-
datetime.utcnow().replace(tzinfo=tz.tzutc()),
377+
datetime.now(timezone.utc).replace(tzinfo=tz.tzutc()),
378378
)
379379

380380

tests/test_formatter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import datetime
1+
from datetime import datetime, timezone
22

33
import pytest
44
import pytz
@@ -113,7 +113,7 @@ def test_timestamp(self):
113113
assert self.formatter._format_token(dt, "x") == expected
114114

115115
def test_timezone(self):
116-
dt = datetime.utcnow().replace(tzinfo=dateutil_tz.gettz("US/Pacific"))
116+
dt = datetime.now(timezone.utc).replace(tzinfo=dateutil_tz.gettz("US/Pacific"))
117117

118118
result = self.formatter._format_token(dt, "ZZ")
119119
assert result == "-07:00" or result == "-08:00"

tests/test_parser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import calendar
22
import os
33
import time
4-
from datetime import datetime
4+
from datetime import datetime, timezone
55

66
import pytest
77
from dateutil import tz
@@ -1149,7 +1149,7 @@ def test_gnu_date(self):
11491149
)
11501150

11511151
def test_isoformat(self):
1152-
dt = datetime.utcnow()
1152+
dt = datetime.now(timezone.utc)
11531153

11541154
assert self.parser.parse_iso(dt.isoformat()) == dt
11551155

tests/test_util.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import time
2-
from datetime import datetime
2+
from datetime import datetime, timezone
33

44
import pytest
55

@@ -87,7 +87,7 @@ def test_validate_ordinal(self):
8787
except (ValueError, TypeError) as exp:
8888
pytest.fail(f"Exception raised when shouldn't have ({type(exp)}).")
8989

90-
ordinal = datetime.utcnow().toordinal()
90+
ordinal = datetime.now(timezone.utc).toordinal()
9191
ordinal_str = str(ordinal)
9292
ordinal_float = float(ordinal) + 0.5
9393

0 commit comments

Comments
 (0)