Exemple #1
0
    def test_get_submissions_with_new_pinned_posts_restricted_download(self, get_raw_submissions, reddit_utils):
        allowed_subreddit = get_subreddit(name='allowed')
        setattr(allowed_subreddit, 'display_name', 'allowed')
        forbidden_subreddit = get_subreddit(name='forbidden')
        setattr(forbidden_subreddit, 'display_name', 'forbidden')
        user = get_user(absolute_date_limit=self.now - timedelta(days=10))
        mock_submissions = []
        for x in range(2):
            mock_submissions.append(MockPrawSubmission(created=self.now - timedelta(days=x), pinned=True,
                                                       subreddit=allowed_subreddit))
        for x in range(2, 20):
            mock_submissions.append(MockPrawSubmission(created=self.now - timedelta(days=x),
                                                       subreddit=allowed_subreddit))
        for x in range(2, 20):
            mock_submissions.append(MockPrawSubmission(created=self.now - timedelta(days=x),
                                                       subreddit=forbidden_subreddit))
        get_raw_submissions.return_value = self.submission_generator(mock_submissions)
        self.assertEqual(38, len(mock_submissions))

        download_runner = DownloadRunner()
        download_runner.filter_subreddits = True
        download_runner.validated_subreddits.append(allowed_subreddit.display_name)
        submissions = download_runner.get_submissions(None, user)

        self.assertEqual(10, len(submissions))
        pinned = 0
        for sub in submissions:
            self.assertGreater(sub.created, user.absolute_date_limit.timestamp())
            self.assertNotEqual(sub.subreddit, forbidden_subreddit)
            if sub.pinned:
                pinned += 1
        self.assertEqual(2, pinned)
Exemple #2
0
 def test_setup_for_subreddit_download(self, get_ro_submissions, get_user_submissions, get_sub_submissions,
                                       reddit_utils):
     download_runner = DownloadRunner(subreddit_id_list=[2, 3, 4])
     download_runner.run_download()
     get_ro_submissions.assert_not_called()
     get_user_submissions.assert_not_called()
     get_sub_submissions.assert_called()
Exemple #3
0
 def test_setup_for_restricted_download(self, get_ro_submissions, get_user_submissions, get_sub_submissions,
                                        validate_subreddit_list, reddit_utils):
     download_runner = DownloadRunner(user_id_list=[2, 3, 4], subreddit_id_list=[4, 6, 2])
     download_runner.run_download()
     get_ro_submissions.assert_not_called()
     get_user_submissions.assert_called()
     get_sub_submissions.assert_not_called()
     validate_subreddit_list.assert_called()
     self.assertTrue(download_runner.filter_subreddits)
Exemple #4
0
    def test_get_submissions_with_no_stickied_posts(self, get_raw_submissions, reddit_utils):
        user = get_user(absolute_date_limit=self.now - timedelta(days=10))
        mock_submissions = []
        for x in range(20):
            mock_submissions.append(MockPrawSubmission(created=self.now - timedelta(days=x)))
        get_raw_submissions.return_value = self.submission_generator(mock_submissions)
        self.assertEqual(20, len(mock_submissions))

        download_runner = DownloadRunner()
        submissions = download_runner.get_submissions(None, user)

        self.assertEqual(10, len(submissions))
        for sub in submissions:
            self.assertGreater(sub.created, user.absolute_date_limit.timestamp())