)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"624852ee218af698e017e0f27c2786241b34381d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"First real Python 3 tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The goal of this changeset is to enable at least some of the tests to be"},{"line_number":10,"context_line":"run under Python3. Even if we can\u0027t get them all to run initially it\u0027s"},{"line_number":11,"context_line":"important that we start seeing the changes from bp keystone-py3kcompat."},{"line_number":12,"context_line":"Also it\u0027s important that we are checking for regressions. If we do all"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAXH%2F%2FQwA%3D","line":9,"updated":"2014-04-22 23:05:02.000000000","message":"Great commit message!  Very helpful!","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"}],"keystone/tests/__init__.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"624852ee218af698e017e0f27c2786241b34381d","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"if six.PY3:"},{"line_number":19,"context_line":"    # NOTE(dstanek): I am a bad person"},{"line_number":20,"context_line":"    import sys"},{"line_number":21,"context_line":"    from unittest import mock  # noqa: our import detection is naive?"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2FQuE%3D","line":19,"updated":"2014-04-22 23:05:02.000000000","message":"I assume the brutal and humorous self-assessment will be removed before merging correct?","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"95d78fce2ce04cd6e47fae2540c2cc8024a043b9","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"if six.PY3:"},{"line_number":19,"context_line":"    # NOTE(dstanek): I am a bad person"},{"line_number":20,"context_line":"    import sys"},{"line_number":21,"context_line":"    from unittest import mock  # noqa: our import detection is naive?"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2FAWI%3D","line":19,"in_reply_to":"AAAAXH%2F%2FQm8%3D","updated":"2014-04-24 18:08:38.000000000","message":"Done","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"471b0b68f421d17f0e8bfc4bfb0d431f2cecfb2a","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"if six.PY3:"},{"line_number":19,"context_line":"    # NOTE(dstanek): I am a bad person"},{"line_number":20,"context_line":"    import sys"},{"line_number":21,"context_line":"    from unittest import mock  # noqa: our import detection is naive?"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2FQm8%3D","line":19,"in_reply_to":"AAAAXH%2F%2FQuE%3D","updated":"2014-04-22 23:11:46.000000000","message":"This might need to be a fixme instead.\n\nAll joking aside, this comment needs to be updated/removed.","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"624852ee218af698e017e0f27c2786241b34381d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    import sys"},{"line_number":21,"context_line":"    from unittest import mock  # noqa: our import detection is naive?"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    import oslo.config  # noqa: need this imported before the monkey patching"},{"line_number":24,"context_line":"    sys.modules[\u0027eventlet\u0027] \u003d mock.Mock()"},{"line_number":25,"context_line":"    sys.modules[\u0027eventlet.green\u0027] \u003d mock.Mock()"},{"line_number":26,"context_line":"    sys.modules[\u0027eventlet.wsgi\u0027] \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2FQts%3D","line":23,"updated":"2014-04-22 23:05:02.000000000","message":"why is the warning suppression needed? oslo.config spews warnings when running under PY3?","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"95d78fce2ce04cd6e47fae2540c2cc8024a043b9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    import sys"},{"line_number":21,"context_line":"    from unittest import mock  # noqa: our import detection is naive?"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    import oslo.config  # noqa: need this imported before the monkey patching"},{"line_number":24,"context_line":"    sys.modules[\u0027eventlet\u0027] \u003d mock.Mock()"},{"line_number":25,"context_line":"    sys.modules[\u0027eventlet.green\u0027] \u003d mock.Mock()"},{"line_number":26,"context_line":"    sys.modules[\u0027eventlet.wsgi\u0027] \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2FAVc%3D","line":23,"in_reply_to":"AAAAXH%2F%2FQts%3D","updated":"2014-04-24 18:08:38.000000000","message":"This is needed because flake 8 complains that I am not actually using the imported module. Added a comment to clarify.","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"471b0b68f421d17f0e8bfc4bfb0d431f2cecfb2a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    import sys"},{"line_number":21,"context_line":"    from unittest import mock  # noqa: our import detection is naive?"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    import oslo.config  # noqa: need this imported before the monkey patching"},{"line_number":24,"context_line":"    sys.modules[\u0027eventlet\u0027] \u003d mock.Mock()"},{"line_number":25,"context_line":"    sys.modules[\u0027eventlet.green\u0027] \u003d mock.Mock()"},{"line_number":26,"context_line":"    sys.modules[\u0027eventlet.wsgi\u0027] \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2FQmo%3D","line":23,"in_reply_to":"AAAAXH%2F%2FQts%3D","updated":"2014-04-22 23:11:46.000000000","message":"This should only be imported if six.PY3?  Is there anything in this block that shouldn\u0027t be specific to py3?","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"}],"keystone/tests/test_cache_backend_mongo.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"624852ee218af698e017e0f27c2786241b34381d","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                if self._apply_filter(document, spec))"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _apply_filter(self, document, query):"},{"line_number":142,"context_line":"        for key, search in six.iteritems(query):"},{"line_number":143,"context_line":"            doc_val \u003d document.get(key)"},{"line_number":144,"context_line":"            if isinstance(search, dict):"},{"line_number":145,"context_line":"                op_dict \u003d {\u0027$in\u0027: lambda dv, sv: dv in sv}"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2FQsA%3D","line":142,"updated":"2014-04-22 23:05:02.000000000","message":"I can\u0027t wait until all the six compatibility stuff is no longer needed.  I\u0027m scared to think how long that will take","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"}],"tox.ini":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"471b0b68f421d17f0e8bfc4bfb0d431f2cecfb2a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"       -r{toxinidir}/test-requirements-py3.txt"},{"line_number":17,"context_line":"       nose"},{"line_number":18,"context_line":"commands \u003d"},{"line_number":19,"context_line":"  nosetests \\"},{"line_number":20,"context_line":"      keystone/tests/test_cache_backend_mongo.py \\"},{"line_number":21,"context_line":"      keystone/tests/test_injection.py \\"},{"line_number":22,"context_line":"      keystone/tests/test_singular_plural.py \\"}],"source_content_type":"text/x-properties","patch_set":6,"id":"AAAAXH%2F%2FQmc%3D","line":19,"updated":"2014-04-22 23:11:46.000000000","message":"testr isn\u0027t where we\u0027re starting from?","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"624852ee218af698e017e0f27c2786241b34381d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"       nose"},{"line_number":18,"context_line":"commands \u003d"},{"line_number":19,"context_line":"  nosetests \\"},{"line_number":20,"context_line":"      keystone/tests/test_cache_backend_mongo.py \\"},{"line_number":21,"context_line":"      keystone/tests/test_injection.py \\"},{"line_number":22,"context_line":"      keystone/tests/test_singular_plural.py \\"},{"line_number":23,"context_line":"      keystone/tests/unit"}],"source_content_type":"text/x-properties","patch_set":6,"id":"AAAAXH%2F%2FQrc%3D","line":20,"updated":"2014-04-22 23:05:02.000000000","message":"every journey starts with a first step.  Or about 4 steps in this case :-)","commit_id":"b910fce93b3a0c565471db5b2831698f9e73e392"}]}
