Skip to content

Commit 2929f58

Browse files
committed
add support for to field
1 parent 93cf009 commit 2929f58

2 files changed

Lines changed: 47 additions & 0 deletions

File tree

stream/feed.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ def __init__(self, client, feed_id, token):
1919
self.token = token
2020
self.authorization = self.feed_together + ' ' + self.token
2121

22+
def add_to_signature(self, recipients):
23+
data = []
24+
for recipient in recipients:
25+
feed = self.client.feed(recipient)
26+
data.append("%s %s" % (recipient, feed.token))
27+
return data
28+
2229
def add_activity(self, activity_data):
2330
'''
2431
Adds an activity to the feed, this will also trigger an update
@@ -31,6 +38,9 @@ def add_activity(self, activity_data):
3138
activity_data = {'actor': 1, 'verb': 'tweet', 'object': 1}
3239
activity_id = feed.add_activity(activity_data)
3340
'''
41+
if activity_data.get('to'):
42+
activity_data['to'] = self.add_to_signature(activity_data['to'])
43+
3444
result = self.client.post(
3545
self.feed_url, data=activity_data, authorization=self.authorization)
3646
return result
@@ -49,6 +59,10 @@ def add_activities(self, activity_list):
4959
]
5060
result = feed.add_activities(activity_data)
5161
'''
62+
for activity_data in activity_list:
63+
if activity_data.get('to'):
64+
activity_data['to'] = self.add_to_signature(activity_data['to'])
65+
5266
data = dict(activities=activity_list)
5367
result = self.client.post(
5468
self.feed_url, data=data, authorization=self.authorization)

stream/tests.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ def test_add_activity(self):
6161
activities = self.user1.get(limit=1)['results']
6262
self.assertEqual(activities[0]['id'], activity_id)
6363

64+
def test_add_activity_to(self):
65+
activity_data = {
66+
'actor': 1, 'verb': 'tweet', 'object': 1,
67+
'to': ['user:pyto1']
68+
}
69+
response = self.user1.add_activity(activity_data)
70+
feed = client.feed('user:pyto1')
71+
activity_id = response['id']
72+
activities = feed.get(limit=1)['results']
73+
self.assertEqual(activities[0]['id'], activity_id)
74+
6475
def test_remove_activity(self):
6576
activity_data = {'actor': 1, 'verb': 'tweet', 'object': 1}
6677
activity_id = self.user1.add_activity(activity_data)['id']
@@ -88,6 +99,28 @@ def test_add_activities(self):
8899
get_activity_ids = [a['id'] for a in activities]
89100
self.assertEqual(get_activity_ids, activity_ids[::-1])
90101

102+
def test_add_activities_to(self):
103+
to = ['user:pyto2', 'user:pyto3']
104+
activity_data = [
105+
{'actor': 1, 'verb': 'tweet', 'object': 1, 'to': to},
106+
{'actor': 2, 'verb': 'watch', 'object': 2, 'to': to},
107+
]
108+
response = self.user1.add_activities(activity_data)
109+
activity_ids = [a['id'] for a in response['activities']]
110+
activities = self.user1.get(limit=2)['results']
111+
get_activity_ids = [a['id'] for a in activities]
112+
self.assertEqual(get_activity_ids, activity_ids[::-1])
113+
# test first target
114+
feed = client.feed('user:pyto2')
115+
activities = feed.get(limit=2)['results']
116+
get_activity_ids = [a['id'] for a in activities]
117+
self.assertEqual(get_activity_ids, activity_ids[::-1])
118+
# test second target
119+
feed = client.feed('user:pyto3')
120+
activities = feed.get(limit=2)['results']
121+
get_activity_ids = [a['id'] for a in activities]
122+
self.assertEqual(get_activity_ids, activity_ids[::-1])
123+
91124
def test_follow(self):
92125
actor_id = random.randint(10, 100000)
93126
activity_data = {'actor': actor_id, 'verb': 'tweet', 'object': 1}

0 commit comments

Comments
 (0)