def test_content_submission_load_more_comments(reddit, terminal): url = 'https://www.reddit.com/r/AskReddit/comments/2np694/' submission = reddit.get_submission(url) content = SubmissionContent(submission, terminal.loader) assert len(content._comment_data) == 391 # More comments load when toggled assert content.get(390)['type'] == 'MoreComments' content.toggle(390) assert len(content._comment_data) > 390 assert content.get(390)['type'] == 'Comment'
def test_content_submission_load_more_comments(reddit, terminal): url = 'https://www.reddit.com/r/AskReddit/comments/2np694/' submission = reddit.get_submission(url) content = SubmissionContent(submission, terminal.loader) last_index = len(content._comment_data) - 1 # More comments load when toggled assert content.get(last_index)['type'] == 'MoreComments' content.toggle(last_index) # Loading more comments should increase the range assert content.range[0] == -1 assert content.range[1] > last_index assert content.get(last_index)['type'] == 'Comment'
def test_content_submission(reddit, terminal): url = 'https://www.reddit.com/r/Python/comments/2xmo63/' submission = reddit.get_submission(url) content = SubmissionContent(submission, terminal.loader) # Everything is loaded upon instantiation assert content.range == (-1, 44) assert content.get(-1)['type'] == 'Submission' assert content.get(40)['type'] == 'Comment' for data in content.iterate(-1, 1): assert all(k in data for k in ('object', 'n_rows', 'offset', 'type', 'hidden')) # All text should be converted to unicode by this point for val in data.values(): assert not isinstance(val, six.binary_type) # Out of bounds with pytest.raises(IndexError): content.get(-2) with pytest.raises(IndexError): content.get(50) # Toggling the submission doesn't do anything content.toggle(-1) assert len(content._comment_data) == 45 # Toggling a comment hides its 3 children content.toggle(2) data = content.get(2) assert data['type'] == 'HiddenComment' assert data['count'] == 3 assert data['hidden'] is True assert data['level'] >= content.get(3)['level'] assert content.range == (-1, 42) # Toggling again expands the children content.toggle(2) data = content.get(2) assert data['hidden'] is False assert content.range == (-1, 44)
def test_content_submission(reddit, terminal): url = 'https://www.reddit.com/r/Python/comments/2xmo63/' submission = reddit.get_submission(url) content = SubmissionContent(submission, terminal.loader) # Everything is loaded upon instantiation assert content.range == (-1, 44) assert content.get(-1)['type'] == 'Submission' assert content.get(40)['type'] == 'Comment' for data in content.iterate(-1, 1): assert all(k in data for k in ('object', 'n_rows', 'h_offset', 'type', 'hidden')) # All text should be converted to unicode by this point for val in data.values(): assert not isinstance(val, six.binary_type) # Out of bounds with pytest.raises(IndexError): content.get(-2) with pytest.raises(IndexError): content.get(50) # Toggling the submission doesn't do anything content.toggle(-1) assert len(content._comment_data) == 45 # Toggling a comment hides its 3 children content.toggle(2) data = content.get(2) assert data['type'] == 'HiddenComment' assert data['count'] == 3 assert data['hidden'] is True assert data['level'] >= content.get(3)['level'] assert content.range == (-1, 42) # Toggling again expands the children content.toggle(2) data = content.get(2) assert data['hidden'] is False assert content.range == (-1, 44)