yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #45868
[Bug 1541218] Re: make tests use test copy of policy.json
Reviewed: https://review.openstack.org/275541
Committed: https://git.openstack.org/cgit/openstack/keystone/commit/?id=52f507c319e05bbdfbd5e28d92fdced7900ebf7d
Submitter: Jenkins
Branch: master
commit 52f507c319e05bbdfbd5e28d92fdced7900ebf7d
Author: Dave Chen <wei.d.chen@xxxxxxxxx>
Date: Wed Feb 3 15:02:40 2016 +0800
Reinitialize the policy engine where it is needed
Policy engine should be reinitialized in the testcases where
policy enforcement is needed so that the `policy.json` from
the code base is readable.
Previously, it's only reinitialized for V3 restful testcases,
but the V2 APIs such as create credential also need to read
policy file.
Bunches of testcases will fail if run testcases separately.
$ python -m unittest keystone.tests.unit.test_v2
...
Ran 122 tests in 18.954s
FAILED (errors=73, skipped=3)
V2 restful testcases could be pass and escaped detection just
because they are run with V3 restful testcases together, and
the `policy.json` is loaded from code base and won't loaded
any more.
Change-Id: I0cbc13f0902db66de0d673c64ec81a56861a2bc3
Closes-Bug: #1541218
** Changed in: keystone
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Identity (keystone).
https://bugs.launchpad.net/bugs/1541218
Title:
make tests use test copy of policy.json
Status in OpenStack Identity (keystone):
Fix Released
Bug description:
How to reproduce:
1. remove the `/etc/keystone/policy.json` if there is since this file
only exists after env is setup, this will make sure the test engine to
search the `policy.json` in the code base, for example, load the
policy file from here `/opt/stack/keystone/etc/policy.json`
2. run the v2 testcases separately,
$ python -m unittest keystone.tests.unit.test_v2
or simply run only one testcases.
$ python -m unittest keystone.tests.unit.test_credential.TestCredentialEc2.test_ec2_list_credentials
3. You will hit the following exceptions.
enforce identity:validate_token: {'is_delegated_auth': False, 'access_token_id': None, 'user_id': u'180af26c59e9460f81652569d27fc439', 'roles': ['Service'], 'user_domain_id': 'default', 'trustee_id': None, 'trustor_id': None, 'consumer_id': None, 'token': <KeystoneToken (audit_id=AP7_3Z_VRniinKe_jiFZrA, audit_chain_id=AP7_3Z_VRniinKe_jiFZrA) at 0x7f9566d5d2a0>, 'project_id': 'service', 'trust_id': None, 'project_domain_id': 'default'}
Failed to find some config files: policy.json
Traceback (most recent call last):
File "keystone/common/wsgi.py", line 247, in __call__
result = method(context, **params)
File "/usr/local/lib/python2.7/dist-packages/oslo_log/versionutils.py", line 165, in wrapped
return func_or_cls(*args, **kwargs)
File "keystone/common/controller.py", line 179, in inner
utils.flatten_dict(policy_dict))
File "keystone/policy/backends/rules.py", line 77, in enforce
enforce(credentials, action, target)
File "keystone/policy/backends/rules.py", line 69, in enforce
return _ENFORCER.enforce(action, target, credentials, **extra)
File "/usr/local/lib/python2.7/dist-packages/oslo_policy/policy.py", line 540, in enforce
self.load_rules()
File "/usr/local/lib/python2.7/dist-packages/oslo_policy/policy.py", line 443, in load_rules
self.policy_path = self._get_policy_path(self.policy_file)
File "/usr/local/lib/python2.7/dist-packages/oslo_policy/policy.py", line 513, in _get_policy_path
raise cfg.ConfigFilesNotFoundError((path,))
ConfigFilesNotFoundError: Failed to find some config files: policy.json
}}}
Traceback (most recent call last):
File "keystone/tests/unit/test_v2.py", line 186, in test_validate_token_service_role
token=token)
File "keystone/tests/unit/rest.py", line 208, in admin_request
return self._request(app=self.admin_app, **kwargs)
File "keystone/tests/unit/rest.py", line 197, in _request
response = self.restful_request(**kwargs)
File "keystone/tests/unit/rest.py", line 182, in restful_request
**kwargs)
File "keystone/tests/unit/rest.py", line 90, in request
**kwargs)
File "/usr/local/lib/python2.7/dist-packages/webtest/app.py", line 567, in request
expect_errors=expect_errors,
File "/usr/local/lib/python2.7/dist-packages/webtest/app.py", line 632, in do_request
self._check_status(status, res)
File "/usr/local/lib/python2.7/dist-packages/webtest/app.py", line 664, in _check_status
res)
webtest.app.AppError: Bad response: 500 Internal Server Error (not 200 OK or 3xx redirect for http://localhost/v2.0/tokens/3c69de14762f42ac89852eb1f3c7eab5)
'{"error": {"message": "An unexpected error prevented the server from fulfilling your request.", "code": 500, "title": "Internal Server Error"}}'
Ran 122 tests in 18.954s
FAILED (errors=73, skipped=3)
To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1541218/+subscriptions
References