~ttx/nova/d4-merge

« back to all changes in this revision

Viewing changes to nova/tests/test_access.py

  • Committer: Thierry Carrez
  • Date: 2011-08-23 12:23:07 UTC
  • mfrom: (1130.75.258 nova)
  • Revision ID: thierry@openstack.org-20110823122307-f0vtuyg1ikc14n87
Merge diablo-4 development from trunk (rev1479)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
#    License for the specific language governing permissions and limitations
17
17
#    under the License.
18
18
 
19
 
import unittest
20
19
import webob
21
20
 
22
21
from nova import context
41
40
class AccessTestCase(test.TestCase):
42
41
    def _env_for(self, ctxt, action):
43
42
        env = {}
44
 
        env['ec2.context'] = ctxt
 
43
        env['nova.context'] = ctxt
45
44
        env['ec2.request'] = FakeApiRequest(action)
46
45
        return env
47
46
 
93
92
        super(AccessTestCase, self).tearDown()
94
93
 
95
94
    def response_status(self, user, methodName):
96
 
        ctxt = context.RequestContext(user, self.project)
 
95
        roles = manager.AuthManager().get_active_roles(user, self.project)
 
96
        ctxt = context.RequestContext(user.id,
 
97
                                      self.project.id,
 
98
                                      is_admin=user.is_admin(),
 
99
                                      roles=roles)
97
100
        environ = self._env_for(ctxt, methodName)
98
101
        req = webob.Request.blank('/', environ)
99
102
        resp = req.get_response(self.mw)
105
108
    def shouldDeny(self, user, methodName):
106
109
        self.assertEqual(401, self.response_status(user, methodName))
107
110
 
108
 
    def test_001_allow_all(self):
 
111
    def test_allow_all(self):
109
112
        users = [self.testadmin, self.testpmsys, self.testnet, self.testsys]
110
113
        for user in users:
111
114
            self.shouldAllow(user, '_allow_all')
112
115
 
113
 
    def test_002_allow_none(self):
 
116
    def test_allow_none(self):
114
117
        self.shouldAllow(self.testadmin, '_allow_none')
115
118
        users = [self.testpmsys, self.testnet, self.testsys]
116
119
        for user in users:
117
120
            self.shouldDeny(user, '_allow_none')
118
121
 
119
 
    def test_003_allow_project_manager(self):
 
122
    def test_allow_project_manager(self):
120
123
        for user in [self.testadmin, self.testpmsys]:
121
124
            self.shouldAllow(user, '_allow_project_manager')
122
125
        for user in [self.testnet, self.testsys]:
123
126
            self.shouldDeny(user, '_allow_project_manager')
124
127
 
125
 
    def test_004_allow_sys_and_net(self):
 
128
    def test_allow_sys_and_net(self):
126
129
        for user in [self.testadmin, self.testnet, self.testsys]:
127
130
            self.shouldAllow(user, '_allow_sys_and_net')
128
131
        # denied because it doesn't have the per project sysadmin
129
132
        for user in [self.testpmsys]:
130
133
            self.shouldDeny(user, '_allow_sys_and_net')
131
 
 
132
 
if __name__ == "__main__":
133
 
    # TODO: Implement use_fake as an option
134
 
    unittest.main()