def test_content_subreddit_load_more(reddit, terminal): submissions = reddit.get_front_page(limit=None) content = SubredditContent('front', submissions, terminal.loader) assert content.get(50)['type'] == 'Submission' assert len(content._submission_data) == 51 for data in islice(content.iterate(0, 1), 0, 50): assert all(k in data for k in ('object', 'n_rows', 'offset', 'type', 'index', 'title', 'split_title')) # All text should be converted to unicode by this point for val in data.values(): assert not isinstance(val, six.binary_type)
def test_content_subreddit_load_more(reddit, terminal): submissions = reddit.get_front_page(limit=None) content = SubredditContent('front', submissions, terminal.loader) assert content.get(50)['type'] == 'Submission' assert content.range == (0, 50) for i, data in enumerate(islice(content.iterate(0, 1), 0, 50)): assert all(k in data for k in ('object', 'n_rows', 'offset', 'type', 'index', 'title', 'split_title')) # All text should be converted to unicode by this point for val in data.values(): assert not isinstance(val, six.binary_type) # Index be appended to each title, starting at "1." and incrementing assert data['index'] == i + 1 assert data['title'].startswith(six.text_type(i + 1))
def test_content_subreddit_load_more(reddit, terminal): submissions = reddit.get_front_page(limit=None) content = SubredditContent('front', submissions, terminal.loader) assert content.get(50)['type'] == 'Submission' assert content.range == (0, 50) for i, data in enumerate(islice(content.iterate(0, 1), 0, 50)): assert all(k in data for k in ('object', 'n_rows', 'h_offset', 'type', 'index', 'title', 'split_title')) # All text should be converted to unicode by this point for val in data.values(): assert not isinstance(val, six.binary_type) # Index be appended to each title, starting at "1." and incrementing assert data['index'] == i + 1 assert data['title'].startswith(six.text_type(i + 1))
def test_content_subreddit(reddit, terminal): submissions = reddit.get_front_page(limit=5) content = SubredditContent('front', submissions, terminal.loader) # Submissions are loaded on demand, excluding for the first one assert len(content._submission_data) == 1 assert content.get(0)['type'] == 'Submission' for data in content.iterate(0, 1): assert all(k in data for k in ('object', 'n_rows', 'offset', 'type', 'index', 'title', 'split_title')) # 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(-1) with pytest.raises(IndexError): content.get(5)