Skip to content

Commit

Permalink
Replace parse_datetime function with email.utils.parsedate_to_datetime
Browse files Browse the repository at this point in the history
This causes the datetime objects for created_at attributes to be aware
  • Loading branch information
Harmon758 committed Jan 3, 2021
1 parent 7e7b5cd commit 59d4d92
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 17 deletions.
5 changes: 0 additions & 5 deletions tests/test_utils.py
Expand Up @@ -13,12 +13,7 @@ def mock_tweet():

class TweepyUtilsTests(unittest.TestCase):

def testparse_datetime(self):
result = parse_datetime("Wed Aug 27 13:08:45 +0000 2008")
self.assertEqual(datetime(2008, 8, 27, 13, 8, 45), result)

def testlist_to_csv(self):
self.assertEqual("1,2,3", list_to_csv([1,2,3]))
self.assertEqual("bird,tweet,nest,egg",
list_to_csv(["bird", "tweet", "nest", "egg"]))

12 changes: 7 additions & 5 deletions tweepy/models.py
Expand Up @@ -2,8 +2,10 @@
# Copyright 2009-2021 Joshua Roesslein
# See LICENSE for details.

from email.utils import parsedate_to_datetime

from tweepy.mixins import Hashable
from tweepy.utils import parse_a_href, parse_datetime, parse_html_value
from tweepy.utils import parse_a_href, parse_html_value


class ResultSet(list):
Expand Down Expand Up @@ -96,7 +98,7 @@ def parse(cls, api, json):
setattr(status, 'author', user)
setattr(status, 'user', user) # DEPRECIATED
elif k == 'created_at':
setattr(status, k, parse_datetime(v))
setattr(status, k, parsedate_to_datetime(v))
elif k == 'source':
if '<' in v:
setattr(status, k, parse_html_value(v))
Expand Down Expand Up @@ -138,7 +140,7 @@ def parse(cls, api, json):
setattr(user, '_json', json)
for k, v in json.items():
if k == 'created_at':
setattr(user, k, parse_datetime(v))
setattr(user, k, parsedate_to_datetime(v))
elif k == 'status':
setattr(user, k, Status.parse(api, v))
elif k == 'following':
Expand Down Expand Up @@ -257,7 +259,7 @@ def parse(cls, api, json):
ss = cls(api)
for k, v in json.items():
if k == 'created_at':
setattr(ss, k, parse_datetime(v))
setattr(ss, k, parsedate_to_datetime(v))
else:
setattr(ss, k, v)
return ss
Expand Down Expand Up @@ -295,7 +297,7 @@ def parse(cls, api, json):
if k == 'user':
setattr(lst, k, User.parse(api, v))
elif k == 'created_at':
setattr(lst, k, parse_datetime(v))
setattr(lst, k, parsedate_to_datetime(v))
else:
setattr(lst, k, v)
return lst
Expand Down
7 changes: 0 additions & 7 deletions tweepy/utils.py
Expand Up @@ -2,13 +2,6 @@
# Copyright 2010-2021 Joshua Roesslein
# See LICENSE for details.

from datetime import datetime
from email.utils import parsedate


def parse_datetime(string):
return datetime(*(parsedate(string)[:6]))


def parse_html_value(html):
return html[html.find('>')+1:html.rfind('<')]
Expand Down

0 comments on commit 59d4d92

Please sign in to comment.