Exemplo n.º 1
0
    def setUp(self):
        self.user_1 = UserFactory(screen_name='terry')
        self.user_2 = UserFactory(screen_name='bob')
        self.user_3 = UserFactory(screen_name='thelma', is_private=True)
        self.account_1 = AccountFactory(user=self.user_1)
        account_2 = AccountFactory(user=self.user_2)
        account_3 = AccountFactory(user=self.user_3) # private

        # Public tweets in 2015 and 2016:
        tweets2015 = TweetFactory.create_batch(3,
                            post_time=datetime_from_str('2015-01-01 12:00:00'))
        tweets2016 = TweetFactory.create_batch(2,
                            post_time=datetime_from_str('2016-01-01 12:00:00'))
        # One private tweet in 2015:
        private_tweet = TweetFactory(
                            post_time=datetime_from_str('2015-01-01 12:00:00'))
        private_tweet.user.is_private = True
        private_tweet.user.save()

        self.account_1.user.favorites.add(private_tweet)
        self.account_1.user.favorites.add(tweets2015[0])
        self.account_1.user.favorites.add(tweets2015[1])
        self.account_1.user.favorites.add(tweets2015[2])
        self.account_1.user.favorites.add(tweets2016[0])
        self.account_1.user.favorites.add(tweets2016[1])

        account_2.user.favorites.add(tweets2015[1])
        account_2.user.favorites.add(tweets2016[1])
        account_3.user.favorites.add(tweets2015[1]) # private user favoriting
Exemplo n.º 2
0
    def setUp(self):
        self.user_1 = UserFactory(screen_name='terry')
        self.user_2 = UserFactory(screen_name='bob')
        self.user_3 = UserFactory(screen_name='thelma', is_private=True)
        self.account_1 = AccountFactory(user=self.user_1)
        account_2 = AccountFactory(user=self.user_2)
        account_3 = AccountFactory(user=self.user_3)  # private

        # Public tweets in 2015 and 2016:
        tweets2015 = TweetFactory.create_batch(
            3, post_time=datetime_from_str('2015-01-01 12:00:00'))
        tweets2016 = TweetFactory.create_batch(
            2, post_time=datetime_from_str('2016-01-01 12:00:00'))
        # One private tweet in 2015:
        private_tweet = TweetFactory(
            post_time=datetime_from_str('2015-01-01 12:00:00'))
        private_tweet.user.is_private = True
        private_tweet.user.save()

        self.account_1.user.favorites.add(private_tweet)
        self.account_1.user.favorites.add(tweets2015[0])
        self.account_1.user.favorites.add(tweets2015[1])
        self.account_1.user.favorites.add(tweets2015[2])
        self.account_1.user.favorites.add(tweets2016[0])
        self.account_1.user.favorites.add(tweets2016[1])

        account_2.user.favorites.add(tweets2015[1])
        account_2.user.favorites.add(tweets2016[1])
        account_3.user.favorites.add(tweets2015[1])  # private user favoriting
Exemplo n.º 3
0
    def test_tweets_years(self):
        "Should include all intermediate years."
        user = TwitterUserFactory(screen_name='philgyford', is_private=False)
        TwitterAccountFactory(user=user)
        TweetFactory(user=user,
                     post_time=make_datetime('2014-01-01 12:00:00'))
        TweetFactory.create_batch(3,
                                user=user,
                                post_time=make_datetime('2016-01-01 12:00:00'))
        TweetFactory(user=user,
                     post_time=make_datetime('2018-01-01 12:00:00'))
        # From a user without an Account; should be ignored:
        TweetFactory(post_time=make_datetime('2018-01-01 12:00:00'))

        result = TwitterGenerator(
                            screen_name='philgyford').get_tweets_per_year()

        self.assertIn('data', result)
        self.assertEqual(result['data'], [
            {'label': '2014', 'value': 1},
            {'label': '2015', 'value': 0},
            {'label': '2016', 'value': 3},
            {'label': '2017', 'value': 0},
            {'label': '2018', 'value': 1},
        ])
Exemplo n.º 4
0
 def setUp(self):
     user_1 = UserFactory(screen_name='terry')
     user_2 = UserFactory(screen_name='bob', is_private=True)
     user_3 = UserFactory(screen_name='thelma')
     account_1 = AccountFactory(user=user_1)
     account_2 = AccountFactory(user=user_2)
     account_3 = AccountFactory(user=user_3)
     self.tweets_1 = TweetFactory.create_batch(2, user=user_1)
     self.tweets_2 = TweetFactory.create_batch(3, user=user_2)
     self.tweets_3 = TweetFactory.create_batch(4, user=user_3)
Exemplo n.º 5
0
 def setUp(self):
     user_1 = UserFactory(screen_name='terry')
     user_2 = UserFactory(screen_name='bob', is_private=True)
     user_3 = UserFactory(screen_name='thelma')
     account_1 = AccountFactory(user=user_1)
     account_2 = AccountFactory(user=user_2)
     account_3 = AccountFactory(user=user_3)
     self.tweets_1 = TweetFactory.create_batch(2, user=user_1)
     self.tweets_2 = TweetFactory.create_batch(3, user=user_2)
     self.tweets_3 = TweetFactory.create_batch(4, user=user_3)
Exemplo n.º 6
0
 def test_default_manager_recent(self):
     "The default manager includes tweets from public AND private users"
     public_user = UserFactory(is_private=False)
     private_user = UserFactory(is_private=True)
     public_tweets = TweetFactory.create_batch(2, user=public_user)
     private_tweet = TweetFactory(user=private_user)
     self.assertEqual(len(Tweet.objects.all()), 3)
Exemplo n.º 7
0
    def test_tweets_data(self):
        user = TwitterUserFactory(screen_name='philgyford', is_private=False)
        TwitterAccountFactory(user=user)
        TweetFactory.create_batch(3,
                                user=user,
                                post_time=make_datetime('2018-01-01 12:00:00'))
        # From a user without an Account; should be ignored:
        TweetFactory(post_time=make_datetime('2018-01-01 12:00:00'))

        result = TwitterGenerator(
                            screen_name='philgyford').get_tweets_per_year()

        self.assertIn('data', result)
        self.assertEqual(len(result['data']), 1)
        self.assertEqual(result['data'][0]['label'], '2018')
        self.assertEqual(result['data'][0]['value'], 3)
Exemplo n.º 8
0
    def setUp(self):
        user_1 = UserFactory(screen_name='terry')
        user_2 = UserFactory(screen_name='bob')
        user_3 = UserFactory(screen_name='thelma', is_private=True)
        account_1 = AccountFactory(user=user_1)
        account_2 = AccountFactory(user=user_2)
        account_3 = AccountFactory(user=user_3)

        self.tweets = TweetFactory.create_batch(6)
        # One of the tweets is private:
        self.tweets[0].user.is_private = True
        self.tweets[0].user.save()

        post_time = datetime.datetime(2015, 3, 18, 12, 0, 0).replace(
                                                            tzinfo=pytz.utc)
        self.tweets[0].post_time = post_time
        self.tweets[0].save()
        self.tweets[1].post_time = post_time + datetime.timedelta(hours=1)
        self.tweets[1].save()
        self.tweets[5].post_time = post_time + datetime.timedelta(hours=2)
        self.tweets[5].save()

        account_1.user.favorites.add(self.tweets[0]) # private tweet
        account_1.user.favorites.add(self.tweets[1])
        account_1.user.favorites.add(self.tweets[2])
        account_1.user.favorites.add(self.tweets[3])
        account_2.user.favorites.add(self.tweets[4])
        account_3.user.favorites.add(self.tweets[5]) # private user favoriting
Exemplo n.º 9
0
 def test_default_manager_recent(self):
     "The default manager includes tweets from public AND private users"
     public_user = UserFactory(is_private=False)
     private_user = UserFactory(is_private=True)
     public_tweets = TweetFactory.create_batch(2, user=public_user)
     private_tweet = TweetFactory(user=private_user)
     self.assertEqual(len(Tweet.objects.all()), 3)
Exemplo n.º 10
0
    def setUp(self):
        user_1 = UserFactory(screen_name='terry')
        user_2 = UserFactory(screen_name='bob')
        user_3 = UserFactory(screen_name='thelma', is_private=True)
        account_1 = AccountFactory(user=user_1)
        account_2 = AccountFactory(user=user_2)
        account_3 = AccountFactory(user=user_3)

        self.tweets = TweetFactory.create_batch(6)
        # One of the tweets is private:
        self.tweets[0].user.is_private = True
        self.tweets[0].user.save()

        post_time = datetime.datetime(2015, 3, 18, 12, 0,
                                      0).replace(tzinfo=pytz.utc)
        self.tweets[0].post_time = post_time
        self.tweets[0].save()
        self.tweets[1].post_time = post_time + datetime.timedelta(hours=1)
        self.tweets[1].save()
        self.tweets[5].post_time = post_time + datetime.timedelta(hours=2)
        self.tweets[5].save()

        account_1.user.favorites.add(self.tweets[0])  # private tweet
        account_1.user.favorites.add(self.tweets[1])
        account_1.user.favorites.add(self.tweets[2])
        account_1.user.favorites.add(self.tweets[3])
        account_2.user.favorites.add(self.tweets[4])
        account_3.user.favorites.add(self.tweets[5])  # private user favoriting
Exemplo n.º 11
0
    def test_requests_all_tweets(self):
        "If no ids supplied, uses all tweets in the DB"
        tweets = TweetFactory.create_batch(5)
        result = TweetsFetcher(screen_name='jill').fetch()

        ids = Tweet.objects.values_list('twitter_id', flat=True).order_by('fetch_time')

        params = QueryDict(responses.calls[0][0].body)
        self.assertIn('id', params)
        self.assertEqual(','.join(map(str, ids)), params['id'])
Exemplo n.º 12
0
 def test_public_manager(self):
     "The public manager ONLY includes tweets from public users"
     public_user = UserFactory(is_private=False)
     private_user = UserFactory(is_private=True)
     public_tweets = TweetFactory.create_batch(2, user=public_user)
     private_tweet = TweetFactory(user=private_user)
     tweets = Tweet.public_objects.all()
     self.assertEqual(len(tweets), 2)
     self.assertEqual(tweets[0].pk, public_tweets[1].pk)
     self.assertEqual(tweets[1].pk, public_tweets[0].pk)
Exemplo n.º 13
0
    def setUp(self):
        user_1 = UserFactory(screen_name='terry')
        user_2 = UserFactory(screen_name='bob')
        user_3 = UserFactory(screen_name='thelma', is_private=True)
        account_1 = AccountFactory(user=user_1)
        account_2 = AccountFactory(user=user_2)
        account_3 = AccountFactory(user=user_3)
        self.tweets_1 = TweetFactory.create_batch(2, user=user_1)
        self.tweets_2 = TweetFactory.create_batch(2, user=user_2)
        self.tweets_3 = TweetFactory.create_batch(2, user=user_3)

        post_time = datetime.datetime(2015, 3, 18, 12, 0, 0).replace(
                                                            tzinfo=pytz.utc)
        self.tweets_1[0].post_time = post_time
        self.tweets_1[0].save()
        self.tweets_2[1].post_time = post_time + datetime.timedelta(hours=1)
        self.tweets_2[1].save()
        self.tweets_3[0].post_time = post_time + datetime.timedelta(hours=2)
        self.tweets_3[0].save()
Exemplo n.º 14
0
 def test_public_manager(self):
     "The public manager ONLY includes tweets from public users"
     public_user = UserFactory(is_private=False)
     private_user = UserFactory(is_private=True)
     public_tweets = TweetFactory.create_batch(2, user=public_user)
     private_tweet = TweetFactory(user=private_user)
     tweets = Tweet.public_objects.all()
     self.assertEqual(len(tweets), 2)
     self.assertEqual(tweets[0].pk, public_tweets[1].pk)
     self.assertEqual(tweets[1].pk, public_tweets[0].pk)
Exemplo n.º 15
0
    def setUp(self):
        user_1 = UserFactory(screen_name='terry')
        user_2 = UserFactory(screen_name='bob')
        user_3 = UserFactory(screen_name='thelma', is_private=True)
        account_1 = AccountFactory(user=user_1)
        account_2 = AccountFactory(user=user_2)
        account_3 = AccountFactory(user=user_3)
        self.tweets_1 = TweetFactory.create_batch(2, user=user_1)
        self.tweets_2 = TweetFactory.create_batch(2, user=user_2)
        self.tweets_3 = TweetFactory.create_batch(2, user=user_3)

        post_time = datetime.datetime(2015, 3, 18, 12, 0,
                                      0).replace(tzinfo=pytz.utc)
        self.tweets_1[0].post_time = post_time
        self.tweets_1[0].save()
        self.tweets_2[1].post_time = post_time + datetime.timedelta(hours=1)
        self.tweets_2[1].save()
        self.tweets_3[0].post_time = post_time + datetime.timedelta(hours=2)
        self.tweets_3[0].save()
Exemplo n.º 16
0
    def test_requests_all_tweets(self):
        "If no ids supplied, uses all tweets in the DB"
        tweets = TweetFactory.create_batch(5)
        result = TweetsFetcher(screen_name='jill').fetch()

        ids = Tweet.objects.values_list('twitter_id',
                                        flat=True).order_by('fetch_time')

        params = QueryDict(responses.calls[0][0].body)
        self.assertIn('id', params)
        self.assertEqual(','.join(map(str, ids)), params['id'])
Exemplo n.º 17
0
 def test_favorites_manager(self):
     "Should contain recent tweets favorited by any account."
     accounts = AccountFactory.create_batch(2)
     tweets = TweetFactory.create_batch(5)
     accounts[0].user.favorites.add(tweets[2])
     accounts[0].user.favorites.add(tweets[4])
     accounts[1].user.favorites.add(tweets[2])
     favorites = Tweet.favorite_objects.all()
     self.assertEqual(len(favorites), 2)
     self.assertEqual(favorites[0].pk, tweets[4].pk)
     self.assertEqual(favorites[1].pk, tweets[2].pk)
Exemplo n.º 18
0
 def test_favorites_manager(self):
     "Should contain recent tweets favorited by any account."
     accounts = AccountFactory.create_batch(2)
     tweets = TweetFactory.create_batch(5)
     accounts[0].user.favorites.add(tweets[2])
     accounts[0].user.favorites.add(tweets[4])
     accounts[1].user.favorites.add(tweets[2])
     favorites = Tweet.favorite_objects.all()
     self.assertEqual(len(favorites), 2)
     self.assertEqual(favorites[0].pk, tweets[4].pk)
     self.assertEqual(favorites[1].pk, tweets[2].pk)
Exemplo n.º 19
0
 def setUp(self):
     self.user_1 = UserFactory(screen_name='terry')
     self.user_2 = UserFactory(screen_name='bob')
     self.user_3 = UserFactory(screen_name='thelma', is_private=True)
     account_1 = AccountFactory(user=self.user_1)
     account_2 = AccountFactory(user=self.user_2)
     account_3 = AccountFactory(user=self.user_3)
     # Tweets in 2015 and 2016 for user 1:
     TweetFactory.create_batch(3,
                         post_time=datetime_from_str('2015-01-01 12:00:00'),
                         user=self.user_1)
     TweetFactory.create_batch(2,
                         post_time=datetime_from_str('2016-01-01 12:00:00'),
                         user=self.user_1)
     # And one for self.user_2 in 2015:
     TweetFactory(user=self.user_2,
                         post_time=datetime_from_str('2015-01-01 12:00:00'))
     # And one tweet in 2015 for the private user 3.
     tw = TweetFactory(user=self.user_3, is_private=True,
                         post_time=datetime_from_str('2015-01-01 12:00:00'))
Exemplo n.º 20
0
 def setUp(self):
     self.user_1 = UserFactory(screen_name='terry')
     self.user_2 = UserFactory(screen_name='bob')
     self.user_3 = UserFactory(screen_name='thelma', is_private=True)
     account_1 = AccountFactory(user=self.user_1)
     account_2 = AccountFactory(user=self.user_2)
     account_3 = AccountFactory(user=self.user_3)
     # Tweets in 2015 and 2016 for user 1:
     TweetFactory.create_batch(
         3,
         post_time=datetime_from_str('2015-01-01 12:00:00'),
         user=self.user_1)
     TweetFactory.create_batch(
         2,
         post_time=datetime_from_str('2016-01-01 12:00:00'),
         user=self.user_1)
     # And one for self.user_2 in 2015:
     TweetFactory(user=self.user_2,
                  post_time=datetime_from_str('2015-01-01 12:00:00'))
     # And one tweet in 2015 for the private user 3.
     tw = TweetFactory(user=self.user_3,
                       is_private=True,
                       post_time=datetime_from_str('2015-01-01 12:00:00'))
Exemplo n.º 21
0
    def test_public_favorites_accounts_manager(self):
        "Should only show tweets favorited by public Accounts"
        public_user = UserFactory(is_private=False)
        private_user = UserFactory(is_private=True)
        account_1 = AccountFactory(user=public_user)
        account_2 = AccountFactory(user=private_user)
        tweets = TweetFactory.create_batch(5)
        account_1.user.favorites.add(tweets[0])
        account_1.user.favorites.add(tweets[3])
        account_2.user.favorites.add(tweets[1])
        account_2.user.favorites.add(tweets[3])

        favorites = Tweet.public_favorite_objects.all()
        self.assertEqual(len(favorites), 2)
        self.assertEqual(favorites[0].pk, tweets[3].pk)
        self.assertEqual(favorites[1].pk, tweets[0].pk)
Exemplo n.º 22
0
    def test_public_favorites_accounts_manager(self):
        "Should only show tweets favorited by public Accounts"
        public_user = UserFactory(is_private=False)
        private_user = UserFactory(is_private=True)
        account_1 = AccountFactory(user=public_user)
        account_2 = AccountFactory(user=private_user)
        tweets = TweetFactory.create_batch(5)
        account_1.user.favorites.add(tweets[0])
        account_1.user.favorites.add(tweets[3])
        account_2.user.favorites.add(tweets[1])
        account_2.user.favorites.add(tweets[3])

        favorites = Tweet.public_favorite_objects.all()
        self.assertEqual(len(favorites), 2)
        self.assertEqual(favorites[0].pk, tweets[3].pk)
        self.assertEqual(favorites[1].pk, tweets[0].pk)
Exemplo n.º 23
0
    def setUp(self):
        user_1 = UserFactory(screen_name='terry')
        user_2 = UserFactory(screen_name='bob')
        user_3 = UserFactory(screen_name='thelma', is_private=True)
        account_1 = AccountFactory(user=user_1)
        account_2 = AccountFactory(user=user_2)
        account_3 = AccountFactory(user=user_3)

        tweets = TweetFactory.create_batch(6)
        # One of the tweets is private:
        tweets[0].user.is_private = True
        tweets[0].user.save()

        account_1.user.favorites.add(tweets[0])
        account_1.user.favorites.add(tweets[1])
        account_1.user.favorites.add(tweets[3])
        account_2.user.favorites.add(tweets[5])
        # Private user favoriting public tweets:
        account_3.user.favorites.add(tweets[5])
Exemplo n.º 24
0
    def setUp(self):
        user_1 = UserFactory(screen_name='terry')
        user_2 = UserFactory(screen_name='bob')
        user_3 = UserFactory(screen_name='thelma', is_private=True)
        account_1 = AccountFactory(user=user_1)
        account_2 = AccountFactory(user=user_2)
        account_3 = AccountFactory(user=user_3)

        tweets = TweetFactory.create_batch(6)
        # One of the tweets is private:
        tweets[0].user.is_private = True
        tweets[0].user.save()

        account_1.user.favorites.add(tweets[0])
        account_1.user.favorites.add(tweets[1])
        account_1.user.favorites.add(tweets[3])
        account_2.user.favorites.add(tweets[5])
        # Private user favoriting public tweets:
        account_3.user.favorites.add(tweets[5])