Skip to content

Commit 5738f71

Browse files
committed
add full user data to direct message object for sender attribute
1 parent c69fc16 commit 5738f71

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

tests/test_models.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ def test_direct_message(self):
5252
self.assertTrue(dm.AsJsonString())
5353
self.assertTrue(dm.AsDict())
5454

55+
def test_direct_message_sender_is_user_model(self):
56+
"""Test that each Direct Message object contains a fully hydrated
57+
twitter.models.User object for both ``dm.sender`` & ``dm.recipient``."""
58+
dm = twitter.DirectMessage.NewFromJsonDict(self.DIRECT_MESSAGE_SAMPLE_JSON)
59+
self.assertTrue(isinstance(dm.sender, twitter.models.User))
60+
5561
def test_hashtag(self):
5662
""" Test twitter.Hashtag object """
5763
ht = twitter.Hashtag.NewFromJsonDict(self.HASHTAG_SAMPLE_JSON)

twitter/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,16 @@ def __init__(self, **kwargs):
176176
'id': None,
177177
'recipient_id': None,
178178
'recipient_screen_name': None,
179+
'sender': None,
179180
'sender_id': None,
180181
'sender_screen_name': None,
181182
'text': None,
182183
}
183184

184185
for (param, default) in self.param_defaults.items():
185186
setattr(self, param, kwargs.get(param, default))
187+
if 'sender' in kwargs:
188+
self.sender = User.NewFromJsonDict(kwargs.get('sender', None))
186189

187190
def __repr__(self):
188191
if self.text and len(self.text) > 140:

0 commit comments

Comments
 (0)