def search_deltas_thread(submission_url, awardee_username): parsed_deltas = [] submission = Submission.from_url(r, submission_url, comment_limit=None) submission.replace_more_comments(limit=16, threshold=1) keyphrase = 'delta awarded to /u/{}'.format(awardee_username).lower() def search_comment(comment, parent): if (getattr(comment.author, 'name', None) == 'DeltaBot' and keyphrase in comment.body.lower()): awarded_at = datetime.fromtimestamp(parent.created_utc) awarded_by = getattr(parent.author, 'name', '[deleted]') parsed_deltas.append(ParsedDelta( awarded_at=awarded_at, awarded_by=awarded_by, awarder_comment_id=parent.id, awarder_comment_url=submission.url + parent.id, submission_id=submission.id, submission_title=submission.title, submission_url=submission.url)) for reply in comment.replies: search_comment(reply, comment) for comment in submission.comments: for reply in comment.replies: search_comment(reply, comment) return parsed_deltas
def test_get_submissions_with_params(self, mocked): sub = Submission(self.r, {'foo': 'meh', 'permalink': ''}) mocked.return_value = ({'data': {'children': [sub]}}, {'data': {'children': []}}) url = 'http://www.reddit.com/comments/1/_/2?context=3&foo=bar' self.assertEqual('meh', self.r.get_submission(url).foo) mocked.assert_called_with('http://www.reddit.com/comments/1/_/2', params={'context': '3', 'foo': 'bar'})
def test_scope_edit(self): self.r.refresh_access_information(self.refresh_token['edit']) submission = Submission.from_id(self.r, self.submission_edit_id) self.assertEqual(submission, submission.edit('Edited text'))
def test_scope_vote(self): self.r.refresh_access_information(self.refresh_token['vote']) submission = Submission.from_id(self.r, self.submission_edit_id) submission.clear_vote()
def test_scope_read_priv_sub_comments(self): self.r.refresh_access_information(self.refresh_token['read']) submission = Submission.from_id(self.r, self.priv_submission_id) self.assertTrue(submission.comments)
def test_scope_read_get_submission_by_url(self): url = ("https://www.reddit.com/r/reddit_api_test_priv/comments/16kbb7/" "google/") self.r.refresh_access_information(self.refresh_token['read']) submission = Submission.from_url(self.r, url) self.assertTrue(submission.num_comments != 0)
def test_scope_modposts(self): self.r.refresh_access_information(self.refresh_token['modposts']) Submission.from_id(self.r, self.submission_edit_id).remove()
def test_vote_oauth(self): self.r.refresh_access_information(self.refresh_token['vote']) submission = Submission.from_id(self.r, self.submission_edit_id) submission.clear_vote()
def test_remove_oauth(self): self.r.refresh_access_information(self.refresh_token['modposts']) Submission.from_id(self.r, self.submission_edit_id).remove()
def test_get_submission_by_url_oauth(self): url = ("https://www.reddit.com/r/reddit_api_test_priv/comments/16kbb7/" "google/") self.r.refresh_access_information(self.refresh_token['read']) submission = Submission.from_url(self.r, url) self.assertTrue(submission.num_comments != 0)
def test_get_priv_submission_comments_oauth(self): self.r.refresh_access_information(self.refresh_token['read']) submission = Submission.from_id(self.r, self.priv_submission_id) self.assertTrue(submission.comments)
def test_edit_oauth(self): self.r.refresh_access_information(self.refresh_token['edit']) submission = Submission.from_id(self.r, self.submission_edit_id) self.assertEqual(submission, submission.edit('Edited text'))