예제 #1
0
파일: test_roles.py 프로젝트: RJ722/coaster
    def test_inspectable_lazyroleset(self):
        d = self.Document()
        u1 = self.User()
        u2 = self.User()
        d.user = u1

        # At the start, the access flags are false
        assert d.accessed_user is False
        assert d.accessed_userlist is False

        # Constructing an inspectable set does not enumerate roles
        r1 = InspectableSet(d.roles_for(u1))
        assert d.accessed_user is False
        assert d.accessed_userlist is False

        # However, accessing the role does
        assert r1.owner is True
        assert d.accessed_user is True
        assert d.accessed_userlist is False

        # Reset and try the other relationship
        d.user = None
        d.userlist = [u2]
        r2 = InspectableSet(d.roles_for(u2))
        assert d.accessed_user is False
        assert d.accessed_userlist is False
        assert r2.owner is True
        assert d.accessed_user is True
        assert d.accessed_userlist is True
예제 #2
0
 def before_request(self, access_token=None):
     if access_token == 'owner-admin-secret':
         add_auth_attribute('permissions', InspectableSet({'siteadmin'}))
         add_auth_attribute('user', 'this-is-the-owner')  # See ViewDocument.permissions
     if access_token == 'owner-secret':
         add_auth_attribute('user', 'this-is-the-owner')  # See ViewDocument.permissions
     return super(ModelDocumentView, self).before_request()
예제 #3
0
    def test_inspectable_set(self):
        s1 = InspectableSet(['all', 'anon'])
        self.assertTrue('all' in s1)
        self.assertFalse('auth' in s1)
        self.assertTrue(s1['all'])
        self.assertFalse(s1['auth'])
        self.assertTrue(s1.all)
        self.assertFalse(s1.auth)

        s2 = InspectableSet({'all', 'anon', 'other'})
        self.assertTrue('all' in s2)
        self.assertFalse('auth' in s2)
        self.assertTrue(s2['all'])
        self.assertFalse(s2['auth'])
        self.assertTrue(s2.all)
        self.assertFalse(s2.auth)

        self.assertEqual(len(s1), 2)
        self.assertEqual(len(s2), 3)
        self.assertEqual(s1, {'all', 'anon'})
        self.assertEqual(s2, {'all', 'anon', 'other'})

        with self.assertRaises(AttributeError):
            s1.auth = True
예제 #4
0
    def test_inspectable_set(self):
        s1 = InspectableSet(['all', 'anon'])
        self.assertTrue('all' in s1)
        self.assertFalse('auth' in s1)
        self.assertTrue(s1['all'])
        self.assertFalse(s1['auth'])
        self.assertTrue(s1.all)
        self.assertFalse(s1.auth)

        s2 = InspectableSet({'all', 'anon', 'other'})
        self.assertTrue('all' in s2)
        self.assertFalse('auth' in s2)
        self.assertTrue(s2['all'])
        self.assertFalse(s2['auth'])
        self.assertTrue(s2.all)
        self.assertFalse(s2.auth)

        self.assertEqual(len(s1), 2)
        self.assertEqual(len(s2), 3)
        self.assertEqual(s1, {'all', 'anon'})
        self.assertEqual(s2, {'all', 'anon', 'other'})

        with self.assertRaises(AttributeError):
            s1.auth = True
예제 #5
0
    def test_inspectable_set(self):
        s1 = InspectableSet(['all', 'anon'])
        assert 'all' in s1
        assert 'auth' not in s1
        assert s1['all']
        assert not s1['auth']
        assert s1.all
        assert not s1.auth

        s2 = InspectableSet({'all', 'anon', 'other'})
        assert 'all' in s2
        assert 'auth' not in s2
        assert s2['all']
        assert not s2['auth']
        assert s2.all
        assert not s2.auth

        assert len(s1) == 2
        assert len(s2) == 3
        assert s1 == {'all', 'anon'}
        assert s2 == {'all', 'anon', 'other'}

        with pytest.raises(AttributeError):
            s1.auth = True