)]}'
{"keystoneclient/fixture/exception.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e67717fbd5b49825c39f6612722f015514df2e30","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"class FixtureValidationError(Exception):"},{"line_number":15,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BFmA%3D","line":14,"updated":"2014-04-01 01:13:47.000000000","message":"A docstring would be helpful. Why would this be raised?","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d362350995352aa327e9f23c6ac51a392ff2164c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"class FixtureValidationError(Exception):"},{"line_number":15,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9qe4%3D","line":14,"in_reply_to":"AAAAWH%2F%2BFmA%3D","updated":"2014-04-03 00:25:30.000000000","message":"Done","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"}],"keystoneclient/fixture/v2.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e67717fbd5b49825c39f6612722f015514df2e30","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return kwargs"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class Token(dict):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, token_id\u003dNone,"},{"line_number":42,"context_line":"                 expires\u003dNone, tenant_id\u003dNone, tenant_name\u003dNone, user_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BFl4%3D","line":39,"updated":"2014-04-01 01:13:47.000000000","message":"A docstring would be useful.","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d362350995352aa327e9f23c6ac51a392ff2164c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return kwargs"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class Token(dict):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, token_id\u003dNone,"},{"line_number":42,"context_line":"                 expires\u003dNone, tenant_id\u003dNone, tenant_name\u003dNone, user_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9qbY%3D","line":39,"in_reply_to":"AAAAWH%2F%2BFl4%3D","updated":"2014-04-03 00:25:30.000000000","message":"Done","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"}],"keystoneclient/tests/v2_0/client_fixtures.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"53d024d6dfb1ba83dc91e3cd189ee38579103782","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"def unscoped_token():"},{"line_number":19,"context_line":"    return fixture.V2Token(token_id\u003d\u00273e2813b7ba0b4006840c3825860b86ed\u0027,"},{"line_number":20,"context_line":"                           expires\u003d\u00272012-10-03T16:58:01Z\u0027,"},{"line_number":21,"context_line":"                           user_id\u003d\u0027c4da488862bd435c9e6c0275a0d0e49a\u0027,"},{"line_number":22,"context_line":"                           user_name\u003d\u0027exampleuser\u0027)"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9qJE%3D","line":20,"updated":"2014-04-03 01:36:21.000000000","message":"In the future we should make id and datetime fields non-expired (unless they are expected to be expired). for now this is fine.","commit_id":"d69461b18fcd05fdce63e98634cd6e7f102ff091"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"e68b4939d5305a946bb71a5b4c9ec9bb29fcf179","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"def unscoped_token():"},{"line_number":19,"context_line":"    return fixture.V2Token(token_id\u003d\u00273e2813b7ba0b4006840c3825860b86ed\u0027,"},{"line_number":20,"context_line":"                           expires\u003d\u00272012-10-03T16:58:01Z\u0027,"},{"line_number":21,"context_line":"                           user_id\u003d\u0027c4da488862bd435c9e6c0275a0d0e49a\u0027,"},{"line_number":22,"context_line":"                           user_name\u003d\u0027exampleuser\u0027)"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9qH4%3D","line":20,"in_reply_to":"AAAAWH%2F9qJE%3D","updated":"2014-04-03 01:38:39.000000000","message":"yep - this change is expected to be non-changing of functionality.\n\nAnother good review would be to make \n\n  expires\u003ddatetime.utcnow() + timedelta(minutes\u003d10)","commit_id":"d69461b18fcd05fdce63e98634cd6e7f102ff091"}],"keystoneclient/tests/v2_0/test_access.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d362350995352aa327e9f23c6ac51a392ff2164c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.assertEqual(auth_ref.username, \u0027exampleuser\u0027)"},{"line_number":43,"context_line":"        self.assertEqual(auth_ref.user_id, \u0027c4da488862bd435c9e6c0275a0d0e49a\u0027)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self.assertEqual(auth_ref.role_names, [])"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.assertIsNone(auth_ref.tenant_name)"},{"line_number":48,"context_line":"        self.assertIsNone(auth_ref.tenant_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9qZ0%3D","side":"PARENT","line":45,"updated":"2014-04-03 00:25:30.000000000","message":"this one re-added with a fix to AccessInfo. Though in reality it\u0027s the same thing - in an unscoped token roles are missing not empty.","commit_id":"f12afc6c738bf58688614a9b3d641fabb5bc5787"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e67717fbd5b49825c39f6612722f015514df2e30","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        self.assertTrue(auth_ref)"},{"line_number":33,"context_line":"        self.assertIn(\u0027token\u0027, auth_ref)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        self.assertEqual(auth_ref.auth_token,"},{"line_number":36,"context_line":"                         \u00273e2813b7ba0b4006840c3825860b86ed\u0027)"},{"line_number":37,"context_line":"        self.assertEqual(auth_ref.username, \u0027exampleuser\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9828%3D","line":34,"updated":"2014-04-01 01:13:47.000000000","message":"why were the assertions removed? did the behavior of AccessInfo.factory change?","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d362350995352aa327e9f23c6ac51a392ff2164c","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        self.assertTrue(auth_ref)"},{"line_number":33,"context_line":"        self.assertIn(\u0027token\u0027, auth_ref)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        self.assertEqual(auth_ref.auth_token,"},{"line_number":36,"context_line":"                         \u00273e2813b7ba0b4006840c3825860b86ed\u0027)"},{"line_number":37,"context_line":"        self.assertEqual(auth_ref.username, \u0027exampleuser\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9qbI%3D","line":34,"in_reply_to":"AAAAWH%2F9828%3D","updated":"2014-04-03 00:25:30.000000000","message":"the tokens that were being used were actually incorrect. Generally for an unscoped token you will not have an empty serviceCatalog - you will just have no serviceCatalog.","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"}],"keystoneclient/tests/v2_0/test_client.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e67717fbd5b49825c39f6612722f015514df2e30","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                           tenant_name\u003d\u0027exampleproject\u0027,"},{"line_number":125,"context_line":"                           auth_url\u003dself.TEST_URL)"},{"line_number":126,"context_line":"        cl.authenticate()"},{"line_number":127,"context_line":"        self.assertEqual(cl.management_url, \u0027http://admin:35357/v2.0\u0027)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self.stub_auth(json\u003dsecond)"},{"line_number":130,"context_line":"        cl.authenticate()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F982k%3D","line":127,"updated":"2014-04-01 01:13:47.000000000","message":"since this url has to match the one at line 113, there should be a variable for it.","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d362350995352aa327e9f23c6ac51a392ff2164c","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                           tenant_name\u003d\u0027exampleproject\u0027,"},{"line_number":125,"context_line":"                           auth_url\u003dself.TEST_URL)"},{"line_number":126,"context_line":"        cl.authenticate()"},{"line_number":127,"context_line":"        self.assertEqual(cl.management_url, \u0027http://admin:35357/v2.0\u0027)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self.stub_auth(json\u003dsecond)"},{"line_number":130,"context_line":"        cl.authenticate()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9qYg%3D","line":127,"in_reply_to":"AAAAWH%2F982k%3D","updated":"2014-04-03 00:25:30.000000000","message":"Done","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e67717fbd5b49825c39f6612722f015514df2e30","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self.stub_auth(json\u003dsecond)"},{"line_number":130,"context_line":"        cl.authenticate()"},{"line_number":131,"context_line":"        self.assertEqual(cl.management_url, \u0027http://secondurl:35357/v2.0\u0027)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @httpretty.activate"},{"line_number":134,"context_line":"    def test_client_with_region_name_passes_to_service_catalog(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F982g%3D","line":131,"updated":"2014-04-01 01:13:47.000000000","message":"since this url has to match the one at line 119, there should be a variable for it.","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d362350995352aa327e9f23c6ac51a392ff2164c","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self.stub_auth(json\u003dsecond)"},{"line_number":130,"context_line":"        cl.authenticate()"},{"line_number":131,"context_line":"        self.assertEqual(cl.management_url, \u0027http://secondurl:35357/v2.0\u0027)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @httpretty.activate"},{"line_number":134,"context_line":"    def test_client_with_region_name_passes_to_service_catalog(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9qYc%3D","line":131,"in_reply_to":"AAAAWH%2F982g%3D","updated":"2014-04-03 00:25:30.000000000","message":"Done","commit_id":"b80f0bc524b8095e1778e8a2e67988af95490c52"}]}
