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)
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()
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)
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())