def test_remove_nsfw_collection_srnames_on_frontpage(self, get_nsfw_collections_srnames): get_nsfw_collections_srnames.return_value = set(nsfw_collection.sr_names) srname = "test1" subreddit = Subreddit(name=srname) Subreddit.user_subreddits = MagicMock(return_value=[ Subreddit(name=nice_srname), Subreddit(name=questionably_nsfw), ]) frontpage_srnames = srnames_from_site(self.logged_in, Frontpage) swf_srnames = srnames_from_site(self.logged_in, subreddit) self.assertEqual(frontpage_srnames, {Frontpage.name, nice_srname}) self.assertTrue(len(frontpage_srnames & {questionably_nsfw}) == 0)
def test_remove_swf_subscriptions_when_viewing_sr_in_nsfw_collection( self, get_nsfw_collections_srnames): get_nsfw_collections_srnames.return_value = set( nsfw_collection.sr_names) questionable_subreddit = Subreddit(name=questionably_nsfw) Subreddit.user_subreddits = MagicMock(return_value=[ Subreddit(name=nice_srname), Subreddit(name=questionably_nsfw), ]) srnames = srnames_from_site(self.logged_in, questionable_subreddit) self.assertEqual(srnames, {questionably_nsfw}) self.assertTrue(len(srnames & {nice_srname}) == 0)
def test_invalid_thing(self): with self.assertRaises(HTTPForbidden): sr = Subreddit(id=1) with patch.object(VByName, "run", return_value=sr): self.validator.run('fullname', None) self.assertFalse(self.validator.has_errors)
def _mock_comment(self, id=1, author_id=1, link_id=1, sr_id=1, can_comment=True, can_view_promo=True, is_moderator=False, **kwargs): kwargs['id'] = id kwargs['author_id'] = author_id kwargs['link_id'] = link_id kwargs['sr_id'] = sr_id comment = Comment(**kwargs) self.autopatch(VByName, "run", return_value=comment) link = Link(id=link_id, sr_id=sr_id) self.autopatch(Link, "_byID", return_value=link) sr = Subreddit(id=sr_id) self.autopatch(Subreddit, "_byID", return_value=sr) self.autopatch(Subreddit, "can_comment", return_value=can_comment) self.autopatch(Link, "can_view_promo", return_value=can_view_promo) self.autopatch(Subreddit, "is_moderator", return_value=is_moderator) return comment
def test_subreddit_logged_in(self, user_subreddits): user_subreddits.return_value = subscriptions srname = "test1" subreddit = Subreddit(name=srname) srnames = srnames_from_site(self.logged_in, subreddit) self.assertEqual(srnames, {srname})
def test_invalid_thing(self): with self.assertRaises(HTTPForbidden): sr = Subreddit(id=1) VByName.run = MagicMock(return_value=sr) self.validator.run('fullname', None) self.assertFalse(self.validator.has_errors)
def _mock_comment(id=1, author_id=1, link_id=1, sr_id=1, can_comment=True, can_view_promo=True, is_moderator=False, **kwargs): kwargs['id'] = id kwargs['author_id'] = author_id kwargs['link_id'] = link_id comment = Comment(**kwargs) VByName.run = MagicMock(return_value=comment) link = Link(id=link_id) Link._byID = MagicMock(return_value=link) sr = Subreddit(id=sr_id) comment.subreddit_slow = sr link.subreddit_slow = sr Subreddit.can_comment = MagicMock(return_value=can_comment) Link.can_view_promo = MagicMock(return_value=can_view_promo) Subreddit.is_moderator = MagicMock(return_value=is_moderator) return comment
def test_quarantined_subscriptions_are_never_included( self, user_subreddits): user_subreddits.return_value = naughty_subscriptions srname = "test1" subreddit = Subreddit(name=srname) srnames = srnames_from_site(self.logged_in, subreddit) self.assertEqual(srnames, {srname} | {nice_srname}) self.assertTrue(len(srnames & {quarantined_srname}) == 0)
def test_nsfw_subscriptions_arent_included_when_viewing_sfw( self, user_subreddits): user_subreddits.return_value = naughty_subscriptions srname = "test1" subreddit = Subreddit(name=srname) srnames = srnames_from_site(self.logged_in, subreddit) self.assertEqual(srnames, {srname} | {nice_srname}) self.assertTrue(len(srnames & {nsfw_srname}) == 0)
def test_only_nsfw_subscriptions_are_included_when_viewing_nswf( self, user_subreddits): user_subreddits.return_value = naughty_subscriptions srname = "bad" subreddit = Subreddit(name=srname, over_18=True) srnames = srnames_from_site(self.logged_in, subreddit) self.assertEqual(srnames, {srname} | {nsfw_srname}) self.assertTrue(len(srnames & {nsfw_srname}) == 1) self.assertTrue(len(srnames & {nice_srname}) == 0)
def _mock_link(self, id=1, author_id=1, sr_id=1, can_comment=True, can_view_promo=True, **kwargs): kwargs['id'] = id kwargs['author_id'] = author_id kwargs['sr_id'] = sr_id link = Link(**kwargs) self.autopatch(VByName, "run", return_value=link) sr = Subreddit(id=sr_id) self.autopatch(Subreddit, "_byID", return_value=sr) self.autopatch(Subreddit, "can_comment", return_value=can_comment) self.autopatch(Link, "can_view_promo", return_value=can_view_promo) return link
def _mock_link(id=1, author_id=1, sr_id=1, can_comment=True, can_view_promo=True, **kwargs): kwargs['id'] = id kwargs['author_id'] = author_id kwargs['sr_id'] = sr_id link = Link(**kwargs) VByName.run = MagicMock(return_value=link) sr = Subreddit(id=sr_id) link.subreddit_slow = sr Subreddit.can_comment = MagicMock(return_value=can_comment) Link.can_view_promo = MagicMock(return_value=can_view_promo) return link
def test_subreddit_logged_out(self): srname = "test1" subreddit = Subreddit(name=srname) srnames = srnames_from_site(self.logged_out, subreddit) self.assertEqual(srnames, {srname})
srnames_from_site, ) from r2.models import ( Account, Collection, FakeAccount, Frontpage, PromoCampaign, Subreddit, MultiReddit, ) from r2.tests import RedditTestCase, NonCache subscriptions_srnames = ["foo", "bar"] subscriptions = map(lambda srname: Subreddit(name=srname), subscriptions_srnames) multi_srnames = ["bing", "bat"] multi_subreddits = map(lambda srname: Subreddit(name=srname), multi_srnames) nice_srname = "mylittlepony" nsfw_srname = "pr0n" questionably_nsfw = "sexstories" quarantined_srname = "croontown" naughty_subscriptions = [ Subreddit(name=nice_srname), Subreddit(name=nsfw_srname, over_18=True), Subreddit(name=quarantined_srname, quarantine=True), ] nsfw_collection_srnames = [questionably_nsfw, nsfw_srname] nsfw_collection = Collection( name="after dark", sr_names=nsfw_collection_srnames,