def setUp(self): super(KeypairPolicyTest, self).setUp() self.KeyPairController = keypairs.KeypairController() def _db_key_pair_get(context, user_id, name): return {'name': 'foo', 'public_key': 'XXX', 'fingerprint': 'YYY'} self.stubs.Set(db, "key_pair_get", _db_key_pair_get) self.stubs.Set(db, "key_pair_get_all_by_user", db_key_pair_get_all_by_user) self.stubs.Set(db, "key_pair_create", db_key_pair_create) self.stubs.Set(db, "key_pair_destroy", db_key_pair_destroy)
def setUp(self): super(KeypairPolicyTest, self).setUp() self.KeyPairController = keypairs.KeypairController() def _db_key_pair_get(context, user_id, name): return dict(test_keypair.fake_keypair, name='foo', public_key='XXX', fingerprint='YYY') self.stubs.Set(db, "key_pair_get", _db_key_pair_get) self.stubs.Set(db, "key_pair_get_all_by_user", db_key_pair_get_all_by_user) self.stubs.Set(db, "key_pair_create", db_key_pair_create) self.stubs.Set(db, "key_pair_destroy", db_key_pair_destroy)
def _setup_app_and_controller(self): self.app_server = fakes.wsgi_app_v21(init_only=('os-keypairs', 'servers')) self.controller = keypairs_v21.KeypairController()
class KeypairPolicyTestV21(test.TestCase): KeyPairController = keypairs_v21.KeypairController() policy_path = 'os_compute_api:os-keypairs' def setUp(self): super(KeypairPolicyTestV21, self).setUp() def _db_key_pair_get(context, user_id, name): return dict(test_keypair.fake_keypair, name='foo', public_key='XXX', fingerprint='YYY', type='ssh') self.stubs.Set(db, "key_pair_get", _db_key_pair_get) self.stubs.Set(db, "key_pair_get_all_by_user", db_key_pair_get_all_by_user) self.stubs.Set(db, "key_pair_create", db_key_pair_create) self.stubs.Set(db, "key_pair_destroy", db_key_pair_destroy) self.req = fakes.HTTPRequest.blank('') def test_keypair_list_fail_policy(self): rules = { self.policy_path + ':index': common_policy.parse_rule('role:admin') } policy.set_rules(rules) self.assertRaises(exception.Forbidden, self.KeyPairController.index, self.req) def test_keypair_list_pass_policy(self): rules = {self.policy_path + ':index': common_policy.parse_rule('')} policy.set_rules(rules) res = self.KeyPairController.index(self.req) self.assertIn('keypairs', res) def test_keypair_show_fail_policy(self): rules = { self.policy_path + ':show': common_policy.parse_rule('role:admin') } policy.set_rules(rules) self.assertRaises(exception.Forbidden, self.KeyPairController.show, self.req, 'FAKE') def test_keypair_show_pass_policy(self): rules = {self.policy_path + ':show': common_policy.parse_rule('')} policy.set_rules(rules) res = self.KeyPairController.show(self.req, 'FAKE') self.assertIn('keypair', res) def test_keypair_create_fail_policy(self): body = {'keypair': {'name': 'create_test'}} rules = { self.policy_path + ':create': common_policy.parse_rule('role:admin') } policy.set_rules(rules) self.assertRaises(exception.Forbidden, self.KeyPairController.create, self.req, body=body) def test_keypair_create_pass_policy(self): body = {'keypair': {'name': 'create_test'}} rules = {self.policy_path + ':create': common_policy.parse_rule('')} policy.set_rules(rules) res = self.KeyPairController.create(self.req, body=body) self.assertIn('keypair', res) def test_keypair_delete_fail_policy(self): rules = { self.policy_path + ':delete': common_policy.parse_rule('role:admin') } policy.set_rules(rules) self.assertRaises(exception.Forbidden, self.KeyPairController.delete, self.req, 'FAKE') def test_keypair_delete_pass_policy(self): rules = {self.policy_path + ':delete': common_policy.parse_rule('')} policy.set_rules(rules) self.KeyPairController.delete(self.req, 'FAKE')
class KeypairPolicyTestV21(test.TestCase): KeyPairController = keypairs_v21.KeypairController() policy_path = 'compute_extension:v3:os-keypairs' base_url = '/v2/fake' def setUp(self): super(KeypairPolicyTestV21, self).setUp() def _db_key_pair_get(context, user_id, name): return dict(test_keypair.fake_keypair, name='foo', public_key='XXX', fingerprint='YYY') self.stubs.Set(db, "key_pair_get", _db_key_pair_get) self.stubs.Set(db, "key_pair_get_all_by_user", db_key_pair_get_all_by_user) self.stubs.Set(db, "key_pair_create", db_key_pair_create) self.stubs.Set(db, "key_pair_destroy", db_key_pair_destroy) def test_keypair_list_fail_policy(self): rules = { self.policy_path + ':index': common_policy.parse_rule('role:admin') } policy.set_rules(rules) req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs') self.assertRaises(exception.Forbidden, self.KeyPairController.index, req) def test_keypair_list_pass_policy(self): rules = {self.policy_path + ':index': common_policy.parse_rule('')} policy.set_rules(rules) req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs') res = self.KeyPairController.index(req) self.assertIn('keypairs', res) def test_keypair_show_fail_policy(self): rules = { self.policy_path + ':show': common_policy.parse_rule('role:admin') } policy.set_rules(rules) req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs/FAKE') self.assertRaises(exception.Forbidden, self.KeyPairController.show, req, 'FAKE') def test_keypair_show_pass_policy(self): rules = {self.policy_path + ':show': common_policy.parse_rule('')} policy.set_rules(rules) req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs/FAKE') res = self.KeyPairController.show(req, 'FAKE') self.assertIn('keypair', res) def test_keypair_create_fail_policy(self): body = {'keypair': {'name': 'create_test'}} rules = { self.policy_path + ':create': common_policy.parse_rule('role:admin') } policy.set_rules(rules) req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs') req.method = 'POST' self.assertRaises(exception.Forbidden, self.KeyPairController.create, req, body=body) def test_keypair_create_pass_policy(self): body = {'keypair': {'name': 'create_test'}} rules = {self.policy_path + ':create': common_policy.parse_rule('')} policy.set_rules(rules) req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs') req.method = 'POST' res = self.KeyPairController.create(req, body=body) self.assertIn('keypair', res) def test_keypair_delete_fail_policy(self): rules = { self.policy_path + ':delete': common_policy.parse_rule('role:admin') } policy.set_rules(rules) req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs/FAKE') req.method = 'DELETE' self.assertRaises(exception.Forbidden, self.KeyPairController.delete, req, 'FAKE') def test_keypair_delete_pass_policy(self): rules = {self.policy_path + ':delete': common_policy.parse_rule('')} policy.set_rules(rules) req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs/FAKE') req.method = 'DELETE' res = self.KeyPairController.delete(req, 'FAKE') # NOTE: on v2.1, http status code is set as wsgi_code of API # method instead of status_int in a response object. if isinstance(self.KeyPairController, keypairs_v21.KeypairController): status_int = self.KeyPairController.delete.wsgi_code else: status_int = res.status_int self.assertEqual(202, status_int)