class TwitterTests(unittest.TestCase): def setUp(self): self.twitter = Twitter() def should_allow_user_to_post_tweet(self): self.twitter.tweet('user', 'message') self.assertEqual([{'user':'******', 'message':'message'}], list(self.twitter.timeline())) def should_limit_tweets_to_140_chars(self): self.assertRaises(ValueError, self.twitter.tweet, 'user', 'x' * 141) def should_show_latest_tweets_most_recent_first_when_unauthenticated(self): self.twitter.tweet('user1', 'hello') self.twitter.tweet('user2', 'world') self.assertEqual([{'user':'******', 'message':'world'}, {'user':'******', 'message':'hello'}], list(self.twitter.timeline())) def should_limit_timeline_to_last_10_tweets(self): for i in range(11): self.twitter.tweet('user', str(i)) self.assertEqual([{'user':'******', 'message':'10'}, {'user':'******', 'message':'9'}, {'user':'******', 'message':'8'}, {'user':'******', 'message':'7'}, {'user':'******', 'message':'6'}, {'user':'******', 'message':'5'}, {'user':'******', 'message':'4'}, {'user':'******', 'message':'3'}, {'user':'******', 'message':'2'}, {'user':'******', 'message':'1'},], list(self.twitter.timeline()))