)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"267f270a44a7bf95db07c315d7eacac02107bafd","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Explicit `_` import"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Due to deprecating unexplicit `_` import, explicit `_` become necessary."},{"line_number":10,"context_line":"But obvious it is done not everywhere. Sadly that tox does not reveal"},{"line_number":11,"context_line":"the bug. To reproduce the bug please use nosetests."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I8b25b5b6d83fb873e25a8fab7686babf1d2261fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2BTFk%3D","line":10,"updated":"2013-11-27 17:55:02.000000000","message":"Is it tox that doesn\u0027t show the error, or is it testr?  If it is testr, do we have a bug report in to figure out what is needed to get that fixed?\n\nPrior to converting to testr, as i recall, tox was using nosetests","commit_id":"48465e5e19a669c5fbe03446874b820440972fd9"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"09bbc2cdb49307f7587a8b796d0b09d7ab1284e6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Explicit `_` import"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Due to deprecating unexplicit `_` import, explicit `_` become necessary."},{"line_number":10,"context_line":"But obvious it is done not everywhere. Sadly that tox does not reveal"},{"line_number":11,"context_line":"the bug. To reproduce the bug please use nosetests."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I8b25b5b6d83fb873e25a8fab7686babf1d2261fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2BLqg%3D","line":10,"in_reply_to":"AAAATn%2F%2BQVs%3D","updated":"2013-11-29 15:24:18.000000000","message":"The real problem is that Keystone\u0027s code is fundamentally broken.  It only works if you import things in a certain order.\n\nhttp://paste.openstack.org/show/54179/","commit_id":"48465e5e19a669c5fbe03446874b820440972fd9"},{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"b123fb26d630af916d028fe5802ef74b0acd735d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Explicit `_` import"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Due to deprecating unexplicit `_` import, explicit `_` become necessary."},{"line_number":10,"context_line":"But obvious it is done not everywhere. Sadly that tox does not reveal"},{"line_number":11,"context_line":"the bug. To reproduce the bug please use nosetests."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I8b25b5b6d83fb873e25a8fab7686babf1d2261fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2BQVs%3D","line":10,"in_reply_to":"AAAATn%2F%2BTFk%3D","updated":"2013-11-28 09:43:54.000000000","message":"It is testr. The problem is testr imports all the modules prior to run tests and monkey-patching, contained in keystone/tests/core.py +44, executes before tests starts. This feature reveals the problem.","commit_id":"48465e5e19a669c5fbe03446874b820440972fd9"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b38564a3586cd4692b47379fa9e512141048f45e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ilya Pekelny \u003cipekelny@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-10 14:46:07 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove the monkey patching of _ into tests/core.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Previous _ was monkey patched in tests/core.py. Thus `core` must be"},{"line_number":10,"context_line":"involved before all the tests run. Which is not True with nosetests."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F9iH4%3D","line":7,"updated":"2013-12-10 15:17:36.000000000","message":"I would rewrite this to be a little more generic since the reality is that this changes quite a bit more than just the tests:\n\n  Removes the monkey patching of _","commit_id":"c3975c40090a9ab3479c4e816b595c235e165d76"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2fbc4d81c33b74f9174b179119822f8089369a03","unresolved":false,"context_lines":[{"line_number":11,"context_line":"the documentation described they would not work. Even importing"},{"line_number":12,"context_line":"certain modules in a interactive Python interpreter would fail unless"},{"line_number":13,"context_line":"keystone.tests was imported first. Monkeypatching was removed and"},{"line_number":14,"context_line":"explicit import for `_` was added."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: David Stanek \u003cdstanek@dstanek.com\u003e"},{"line_number":17,"context_line":"Change-Id: I8b25b5b6d83fb873e25a8fab7686babf1d2261fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"AAAAU3%2F%2FnQY%3D","line":14,"updated":"2014-02-25 17:05:51.000000000","message":"(NIT): if this happens to get repushed for review, it could be noted in the commit message that this change also does some minor reordering of imports.","commit_id":"1a679e44ea8a5ca83254a07787fed9cd09720110"}],"keystone/auth/plugins/password.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a91eac78a59ddb612bdd9f82caea008abcb71eed","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from keystone.openstack.common.gettextutils import _"},{"line_number":21,"context_line":"from keystone.openstack.common import log"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"METHOD_NAME \u003d \u0027password\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAUX%2F%2FOnw%3D","line":23,"updated":"2014-02-14 17:54:21.000000000","message":"Newline here?","commit_id":"a018b46d426a707726d1a46e73fdb026648008e4"}],"keystone/common/environment/__init__.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a91eac78a59ddb612bdd9f82caea008abcb71eed","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from keystone.openstack.common.gettextutils import _"},{"line_number":22,"context_line":"from keystone.openstack.common import log"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d config.CONF"},{"line_number":26,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAUX%2F%2FOnE%3D","line":24,"updated":"2014-02-14 17:54:21.000000000","message":"same comment here, how come we\u0027ve added a newline?","commit_id":"a018b46d426a707726d1a46e73fdb026648008e4"}],"keystone/common/ldap/core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a91eac78a59ddb612bdd9f82caea008abcb71eed","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from keystone.openstack.common.gettextutils import _"},{"line_number":25,"context_line":"from keystone.openstack.common import log"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAUX%2F%2FOmw%3D","line":27,"updated":"2014-02-14 17:54:21.000000000","message":"and here","commit_id":"a018b46d426a707726d1a46e73fdb026648008e4"}],"keystone/openstack/common/crypto/utils.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f82fa9311d5f64e8e5970b279daee0ebf17570cd","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from Crypto.Hash import HMAC"},{"line_number":18,"context_line":"from Crypto import Random"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from keystone.openstack.common.gettextutils import _"},{"line_number":21,"context_line":"from keystone.openstack.common import importutils"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F9im8%3D","line":20,"updated":"2014-02-06 06:56:07.000000000","message":"These (keystone.openstack.common.*) files are probably going to have to be fixed in oslo-incubator first and then sync\u0027d with Keystone. If we merge changes here without going through oslo, the keystone code will be out of sync with \u0027upstream\u0027 oslo.","commit_id":"83da3a5ed52354f86426adb1dd98945ae1e24c3a"},{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"c5a149f66a5d7b2450fe748797aa9285f35afcd6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from Crypto.Hash import HMAC"},{"line_number":18,"context_line":"from Crypto import Random"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from keystone.openstack.common.gettextutils import _"},{"line_number":21,"context_line":"from keystone.openstack.common import importutils"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F9h%2BU%3D","line":20,"in_reply_to":"AAAAUH%2F9im8%3D","updated":"2014-02-06 09:10:23.000000000","message":"Nice catch! Thanks!","commit_id":"83da3a5ed52354f86426adb1dd98945ae1e24c3a"}],"keystone/openstack/common/gettextutils.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"5d699091d388eaf16a5e4cdf6e0234cd39bb99b2","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"_AVAILABLE_LANGUAGES \u003d {}"},{"line_number":44,"context_line":"# NOTE(i159): To preserve lazy behaviour required set USE_LAZY to true."},{"line_number":45,"context_line":"USE_LAZY \u003d True #False"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def enable_lazy():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9pGg%3D","line":45,"updated":"2013-12-09 11:52:19.000000000","message":"whoa, i think you need to undo this or document it in the commit message. this seems out of scope for this change -- please explain.\n\nat minimum, remove the commented out boolean","commit_id":"13caac1bd70d6fb17efa5d8fa6c9f7c4aa4d7d5a"},{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"473457548dd0bfbf28e6a162553e6887cdfc6b94","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"_AVAILABLE_LANGUAGES \u003d {}"},{"line_number":44,"context_line":"# NOTE(i159): To preserve lazy behaviour required set USE_LAZY to true."},{"line_number":45,"context_line":"USE_LAZY \u003d True #False"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def enable_lazy():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9pE4%3D","line":45,"in_reply_to":"AAAATn%2F9pGg%3D","updated":"2013-12-09 11:59:44.000000000","message":"Sure! I just worry about inadmissibility of this change. Will be cleaned.","commit_id":"13caac1bd70d6fb17efa5d8fa6c9f7c4aa4d7d5a"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b38564a3586cd4692b47379fa9e512141048f45e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"_t \u003d gettext.translation(\u0027keystone\u0027, localedir\u003d_localedir, fallback\u003dTrue)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"_AVAILABLE_LANGUAGES \u003d {}"},{"line_number":42,"context_line":"USE_LAZY \u003d False"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def enable_lazy():"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9iIo%3D","side":"PARENT","line":42,"updated":"2013-12-10 15:17:36.000000000","message":"This file should not be changed here.  This is one of the files that we sync from oslo so this change will eventually be wiped out.","commit_id":"926755a22023e9362aad46cebcb1c13f077a2e25"}],"keystone/openstack/common/py3kcompat/__init__.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b54c4bdbeb9ba88dc7a302851ddaa63ec6bc6bc9","unresolved":false,"context_lines":[{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":7,"context_line":"#    a copy of the License at"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":10,"context_line":"#"},{"line_number":11,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":12,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUX%2F%2BgUw%3D","side":"PARENT","line":9,"updated":"2014-02-20 20:13:01.000000000","message":"I don\u0027t think these can be removed here.","commit_id":"ae1df7c96c9aa81f6146e50290c9555b02bcf6f2"}],"keystone/openstack/common/py3kcompat/urlutils.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b54c4bdbeb9ba88dc7a302851ddaa63ec6bc6bc9","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":10,"context_line":"#"},{"line_number":11,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":12,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":13,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUX%2F%2BgUk%3D","side":"PARENT","line":12,"updated":"2014-02-20 20:13:01.000000000","message":"same comment here.","commit_id":"ae1df7c96c9aa81f6146e50290c9555b02bcf6f2"}],"keystone/tests/__init__.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8c72e1cc08101fcd3f3545db5bd018bc36820287","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# behavior. This includes cases, like keystone.exceptions, where"},{"line_number":18,"context_line":"# gettextutils._() is called at import time."},{"line_number":19,"context_line":"from keystone.openstack.common import gettextutils as _gettextutils"},{"line_number":20,"context_line":"_gettextutils.enable_lazy()"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystone.tests.core import *  # flake8: noqa"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAVX%2F%2F4ss%3D","line":20,"updated":"2014-02-27 15:47:39.000000000","message":"I don\u0027t like this being moved to __init__. Leave it in core.py so it\u0027s easier to find.","commit_id":"1a679e44ea8a5ca83254a07787fed9cd09720110"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6955f1047aa9ffd0d3df1011f743b1c7093fc751","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# behavior. This includes cases, like keystone.exceptions, where"},{"line_number":18,"context_line":"# gettextutils._() is called at import time."},{"line_number":19,"context_line":"from keystone.openstack.common import gettextutils as _gettextutils"},{"line_number":20,"context_line":"_gettextutils.enable_lazy()"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystone.tests.core import *  # flake8: noqa"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAVX%2F%2F3AA%3D","line":20,"in_reply_to":"AAAAVX%2F%2F3J4%3D","updated":"2014-02-27 19:09:37.000000000","message":"do that in a separate commit.","commit_id":"1a679e44ea8a5ca83254a07787fed9cd09720110"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"3c3c96fc4298a77bf284499975fc349e5a044202","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# behavior. This includes cases, like keystone.exceptions, where"},{"line_number":18,"context_line":"# gettextutils._() is called at import time."},{"line_number":19,"context_line":"from keystone.openstack.common import gettextutils as _gettextutils"},{"line_number":20,"context_line":"_gettextutils.enable_lazy()"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystone.tests.core import *  # flake8: noqa"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAVX%2F%2F3J4%3D","line":20,"in_reply_to":"AAAAVX%2F%2F4ss%3D","updated":"2014-02-27 18:49:35.000000000","message":"I put it here so that it is executed before core is imported. Right now this has to be imported and executed before other stuff in core that uses _(). So this has led us into a situation where you have a list of imports, this code and then more imports. To me this is cleaner because people editing core don\u0027t have to wonder where to put their new import. Since __init__ is really there is initialize a package to makes sense to put this type of code there. I would also argue that the environment setup should go there as well.","commit_id":"1a679e44ea8a5ca83254a07787fed9cd09720110"}],"keystone/tests/core.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b38564a3586cd4692b47379fa9e512141048f45e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"# Configure gettextutils for deferred translation of messages"},{"line_number":43,"context_line":"# so that error messages in responses can be translated according to the"},{"line_number":44,"context_line":"# Accept-Language in the request rather than the Keystone server locale."},{"line_number":45,"context_line":"gettextutils.install(\u0027keystone\u0027, lazy\u003dTrue)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"from keystone import assignment"},{"line_number":48,"context_line":"from keystone import catalog"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9h00%3D","side":"PARENT","line":45,"updated":"2013-12-10 15:17:36.000000000","message":"We shouldn\u0027t be calling this anymore, but we still need to enable lazy mode.","commit_id":"926755a22023e9362aad46cebcb1c13f077a2e25"}],"keystone/tests/fakeldap.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8c72e1cc08101fcd3f3545db5bd018bc36820287","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import shelve"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import ldap"},{"line_number":29,"context_line":"import six"},{"line_number":30,"context_line":"from six import moves"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from keystone.common import utils"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAVX%2F%2F4rk%3D","line":29,"updated":"2014-02-27 15:47:39.000000000","message":"fixing the order of imports should be done in a separate commit.","commit_id":"1a679e44ea8a5ca83254a07787fed9cd09720110"}]}
