Skip to content

Commit a592b1b

Browse files
committed
Add streaming test_sample test.
1 parent 5e06813 commit a592b1b

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

tests/test_streaming.py

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,52 @@
22
import unittest
33

44
from tweepy.api import API
5+
from tweepy.models import Status
56
from tweepy.streaming import Stream, StreamListener
67

78
from config import create_auth
89
from mock import mock_tweet
910

1011
class MockStreamListener(StreamListener):
11-
def __init__(self):
12+
def __init__(self, test_case):
1213
super(MockStreamListener, self).__init__()
14+
self.test_case = test_case
1315
self.status_count = 0
16+
self.status_stop_count = 0
17+
self.connect_cb = None
18+
19+
def on_connect(self):
20+
if self.connect_cb:
21+
self.connect_cb()
1422

1523
def on_status(self, status):
1624
self.status_count += 1
17-
return False
25+
self.test_case.assertIsInstance(status, Status)
26+
if self.status_stop_count == self.status_count:
27+
return False
1828

1929
class TweepyStreamTests(unittest.TestCase):
2030
def setUp(self):
2131
self.auth = create_auth()
22-
self.listener = MockStreamListener()
32+
self.listener = MockStreamListener(self)
2333
self.stream = Stream(self.auth, self.listener)
2434

2535
def tearDown(self):
2636
self.stream.disconnect()
2737

2838
def test_userstream(self):
29-
self.stream.userstream(async=True)
30-
3139
# Generate random tweet which should show up in the stream.
32-
# Wait a bit of time for it to arrive before asserting.
33-
API(self.auth).update_status(mock_tweet())
34-
sleep(1)
40+
def on_connect():
41+
API(self.auth).update_status(mock_tweet())
3542

43+
self.listener.connect_cb = on_connect
44+
self.listener.status_stop_count = 1
45+
self.stream.userstream()
3646
self.assertEqual(self.listener.status_count, 1)
3747

48+
def test_sample(self):
49+
self.listener.status_stop_count = 10
50+
self.stream.sample()
51+
self.assertEquals(self.listener.status_count,
52+
self.listener.status_stop_count)
53+

0 commit comments

Comments
 (0)