def get_query(after_user_id): q = SRMember._query( SRMember.c._name == "subscriber", SRMember.c._thing2_id < after_user_id, sort=desc("_thing2_id"), ) return q
def setUp(self): a = Account() a._commit() sr = Subreddit(name = 'subreddit_name_%s' % (self.seconds_since_epoc(),), title = 'subreddit_title_%s' % (self.seconds_since_epoc(),),) sr._commit() self.rel = SRMember(sr, a, 'test')
def moderated_subreddits(self, permissions=None): """Yield an iterator of Subreddits the user moderates. The `permissions` argument is optional, but can be a string or list of strings specifying moderator permissions. If specified, subreddits will only be yielded if the user has those permissions in that subreddit. """ from r2.models.subreddit import SRMember if permissions: permissions = tup(permissions) mod_rels = SRMember._query( SRMember.c._thing2_id == self._id, SRMember.c._name == "moderator", data=True, ) for rel in mod_rels: if permissions: rel._permission_class = ModeratorPermissionSet # skip any where the user doesn't have the right perms if not all(rel.has_permission(perm) for perm in permissions): continue yield rel._thing1
def moderated_subreddits(self, permissions=None): """Yield an iterator of Subreddits the user moderates. The `permissions` argument is optional, but can be a string or list of strings specifying moderator permissions. If specified, subreddits will only be yielded if the user has those permissions in that subreddit. """ from r2.models.subreddit import SRMember if permissions: permissions = tup(permissions) mod_rels = SRMember._query(SRMember.c._thing2_id == self._id, SRMember.c._name == "moderator", data=True) for rel in mod_rels: if permissions: rel._permission_class = ModeratorPermissionSet # skip any where the user doesn't have the right perms if not all(rel.has_permission(perm) for perm in permissions): continue yield rel._thing1
def setUp(self): a = Account() a._id = 1 sr = Subreddit() sr._id = 2 self.rel = SRMember(sr, a, 'test')
class SRMemberTest(unittest.TestCase): def setUp(self): a = Account() a._id = 1 sr = Subreddit() sr._id = 2 self.rel = SRMember(sr, a, 'test') def test_get_permissions(self): self.assertRaises(NotImplementedError, self.rel.get_permissions) self.rel._permission_class = TestPermissionSet self.assertEquals('', self.rel.get_permissions().dumps()) self.rel.encoded_permissions = '+x,-y' self.assertEquals('+x,-y', self.rel.get_permissions().dumps()) def test_has_permission(self): self.assertRaises(NotImplementedError, self.rel.has_permission, 'x') self.rel._permission_class = TestPermissionSet self.assertFalse(self.rel.has_permission('x')) self.rel.encoded_permissions = '+x,-y' self.assertTrue(self.rel.has_permission('x')) self.assertFalse(self.rel.has_permission('y')) self.rel.encoded_permissions = '+all' self.assertTrue(self.rel.has_permission('x')) self.assertTrue(self.rel.has_permission('y')) self.assertFalse(self.rel.has_permission('z')) def test_update_permissions(self): self.assertRaises(NotImplementedError, self.rel.update_permissions, x=True) self.rel._permission_class = TestPermissionSet self.rel.update_permissions(x=True, y=False) self.assertEquals('+x,-y', self.rel.encoded_permissions) self.rel.update_permissions(x=None) self.assertEquals('-y', self.rel.encoded_permissions) self.rel.update_permissions(y=None, z=None) self.assertEquals('', self.rel.encoded_permissions) self.rel.update_permissions(x=True, y=False, all=True) self.assertEquals('+all', self.rel.encoded_permissions) def test_set_permissions(self): self.rel.set_permissions(PermissionSet(x=True, y=False)) self.assertEquals('+x,-y', self.rel.encoded_permissions) def test_is_superuser(self): self.assertRaises(NotImplementedError, self.rel.is_superuser) self.rel._permission_class = TestPermissionSet self.assertFalse(self.rel.is_superuser()) self.rel.encoded_permissions = '+all' self.assertTrue(self.rel.is_superuser())
def setUp(self): a = Account() a._commit() sr = Subreddit() sr._commit() self.rel = SRMember(sr, a, 'test')
class SRMemberTest(unittest.TestCase): def setUp(self): a = Account() a._commit() sr = Subreddit() sr._commit() self.rel = SRMember(sr, a, 'test') def test_get_permissions(self): self.assertRaises(NotImplementedError, self.rel.get_permissions) self.rel._permission_class = TestPermissionSet self.assertEquals('', self.rel.get_permissions().dumps()) self.rel.encoded_permissions = '+x,-y' self.assertEquals('+x,-y', self.rel.get_permissions().dumps()) def test_has_permission(self): self.assertRaises(NotImplementedError, self.rel.has_permission, 'x') self.rel._permission_class = TestPermissionSet self.assertFalse(self.rel.has_permission('x')) self.rel.encoded_permissions = '+x,-y' self.assertTrue(self.rel.has_permission('x')) self.assertFalse(self.rel.has_permission('y')) self.rel.encoded_permissions = '+all' self.assertTrue(self.rel.has_permission('x')) self.assertTrue(self.rel.has_permission('y')) self.assertFalse(self.rel.has_permission('z')) def test_update_permissions(self): self.assertRaises(NotImplementedError, self.rel.update_permissions, x=True) self.rel._permission_class = TestPermissionSet self.rel.update_permissions(x=True, y=False) self.assertEquals('+x,-y', self.rel.encoded_permissions) self.rel.update_permissions(x=None) self.assertEquals('-y', self.rel.encoded_permissions) self.rel.update_permissions(y=None, z=None) self.assertEquals('', self.rel.encoded_permissions) self.rel.update_permissions(x=True, y=False, all=True) self.assertEquals('+all', self.rel.encoded_permissions) def test_set_permissions(self): self.rel.set_permissions(PermissionSet(x=True, y=False)) self.assertEquals('+x,-y', self.rel.encoded_permissions) def test_is_superuser(self): self.assertRaises(NotImplementedError, self.rel.is_superuser) self.rel._permission_class = TestPermissionSet self.assertFalse(self.rel.is_superuser()) self.rel.encoded_permissions = '+all' self.assertTrue(self.rel.is_superuser())