)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"83d52bdd270f2368be023ee81ce0155498d6c63a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"These tests were not specific to the Fernet provider and they should live in"},{"line_number":10,"context_line":"the general TokenAPITests class so that the behavior is tested against all"},{"line_number":11,"context_line":"token providers."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Subsequent patches will do the same for domain-scoped and project-scoped"},{"line_number":14,"context_line":"tokens."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7af24918_95e83d12","line":11,"updated":"2016-03-02 16:15:25.000000000","message":"What if we a new file for the token providers tests, so we can split the test_v3_auth, organizing better this tests.\n\nWe can start getting out the TokenAPITests.\n\nWhat do you think?","commit_id":"1bf9de508357c78a2b756cfde45f8132b9cf1066"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"8ca4331bd972d3ff3639aa3e39cb05823a2e28c0","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"These tests were not specific to the Fernet provider and they should live in"},{"line_number":10,"context_line":"the general TokenAPITests class so that the behavior is tested against all"},{"line_number":11,"context_line":"token providers."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Subsequent patches will do the same for domain-scoped and project-scoped"},{"line_number":14,"context_line":"tokens."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7af24918_291a5117","line":11,"in_reply_to":"7af24918_716a85b4","updated":"2016-03-03 17:43:27.000000000","message":"Sure, we can do this as a next step for this patches :)","commit_id":"1bf9de508357c78a2b756cfde45f8132b9cf1066"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"3c96ed4edee1175855cbde51e251060afc869567","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"These tests were not specific to the Fernet provider and they should live in"},{"line_number":10,"context_line":"the general TokenAPITests class so that the behavior is tested against all"},{"line_number":11,"context_line":"token providers."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Subsequent patches will do the same for domain-scoped and project-scoped"},{"line_number":14,"context_line":"tokens."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7af24918_716a85b4","line":11,"in_reply_to":"7af24918_95e83d12","updated":"2016-03-03 17:02:35.000000000","message":"That\u0027s an option - but that might be easier after this refactor lands since *all* the token behavior tests will be in one place.","commit_id":"1bf9de508357c78a2b756cfde45f8132b9cf1066"}],"keystone/tests/unit/test_v3_auth.py":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"e8ec1fa020d787c0e647ba6002a4443dd2fc7b76","unresolved":false,"context_lines":[{"line_number":1046,"context_line":"        super(TestFernetTokenAPIs, self).setUp()"},{"line_number":1047,"context_line":"        self.doSetUp()"},{"line_number":1048,"context_line":""},{"line_number":1049,"context_line":"    def _make_auth_request(self, auth_data):"},{"line_number":1050,"context_line":"        resp \u003d self.post(\u0027/auth/tokens\u0027, body\u003dauth_data)"},{"line_number":1051,"context_line":"        token \u003d resp.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":1052,"context_line":"        self.assertLess(len(token), 255)"},{"line_number":1053,"context_line":"        return token"},{"line_number":1054,"context_line":""},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"class TestTokenRevokeSelfAndAdmin(test_v3.RestfulTestCase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_2145af6f","line":1053,"range":{"start_line":1049,"start_character":0,"end_line":1053,"end_character":20},"updated":"2016-03-02 13:52:09.000000000","message":"Can we reuse this method in the TokenAPITests? line 137","commit_id":"1bf9de508357c78a2b756cfde45f8132b9cf1066"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"3c96ed4edee1175855cbde51e251060afc869567","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"        resp \u003d self.post(\u0027/auth/tokens\u0027, body\u003dauth_data)"},{"line_number":1051,"context_line":"        token \u003d resp.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":1052,"context_line":"        self.assertLess(len(token), 255)"},{"line_number":1053,"context_line":"        return token"},{"line_number":1054,"context_line":""},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"class TestTokenRevokeSelfAndAdmin(test_v3.RestfulTestCase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_b18ecd76","line":1053,"in_reply_to":"7af24918_2145af6f","updated":"2016-03-03 17:02:35.000000000","message":"++ will do - good catch.","commit_id":"1bf9de508357c78a2b756cfde45f8132b9cf1066"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"08712a0cb79d66f7cf2076d3cad634b4734d8a9c","unresolved":false,"context_lines":[{"line_number":4378,"context_line":"    def _revoke_token(self, token, expected_status\u003dhttp_client.NO_CONTENT):"},{"line_number":4379,"context_line":"        return self.delete("},{"line_number":4380,"context_line":"            \u0027/auth/tokens\u0027,"},{"line_number":4381,"context_line":"            headers\u003d{\u0027x-subject-token\u0027: token},"},{"line_number":4382,"context_line":"            expected_status\u003dexpected_status)"},{"line_number":4383,"context_line":""},{"line_number":4384,"context_line":"    # TODO(lbragstad): Remove this once its no longer referenced in this class."}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_0ad5ce1a","line":4381,"updated":"2016-03-03 16:37:52.000000000","message":"revert this change it\u0027s unnecessary.","commit_id":"1bf9de508357c78a2b756cfde45f8132b9cf1066"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"3c96ed4edee1175855cbde51e251060afc869567","unresolved":false,"context_lines":[{"line_number":4378,"context_line":"    def _revoke_token(self, token, expected_status\u003dhttp_client.NO_CONTENT):"},{"line_number":4379,"context_line":"        return self.delete("},{"line_number":4380,"context_line":"            \u0027/auth/tokens\u0027,"},{"line_number":4381,"context_line":"            headers\u003d{\u0027x-subject-token\u0027: token},"},{"line_number":4382,"context_line":"            expected_status\u003dexpected_status)"},{"line_number":4383,"context_line":""},{"line_number":4384,"context_line":"    # TODO(lbragstad): Remove this once its no longer referenced in this class."}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_31247d5e","line":4381,"in_reply_to":"7af24918_0ad5ce1a","updated":"2016-03-03 17:02:35.000000000","message":"Good catch, I fat-fingered the binding for lower-casing in vim.\n\nThanks!","commit_id":"1bf9de508357c78a2b756cfde45f8132b9cf1066"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3dc30ad7e04f7d4881e9b5182a9def57056bece7","unresolved":false,"context_lines":[{"line_number":4370,"context_line":"        return token"},{"line_number":4371,"context_line":""},{"line_number":4372,"context_line":"    # TODO(lbragstad): Remove this once its no longer referenced in this class."},{"line_number":4373,"context_line":"    def _validate_token(self, token, expected_status\u003dhttp_client.OK):"},{"line_number":4374,"context_line":"        return self.get("},{"line_number":4375,"context_line":"            \u0027/auth/tokens\u0027,"},{"line_number":4376,"context_line":"            headers\u003d{\u0027X-Subject-Token\u0027: token},"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_17471e1e","line":4373,"updated":"2016-03-08 14:47:45.000000000","message":"move this back where it was so this is easier to review.","commit_id":"bf2c7314df0fbea8cbbf23b852d151475ce761d6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c7ce4c342a1deb001cfc22da810d750edd194740","unresolved":false,"context_lines":[{"line_number":4370,"context_line":"        return token"},{"line_number":4371,"context_line":""},{"line_number":4372,"context_line":"    # TODO(lbragstad): Remove this once its no longer referenced in this class."},{"line_number":4373,"context_line":"    def _validate_token(self, token, expected_status\u003dhttp_client.OK):"},{"line_number":4374,"context_line":"        return self.get("},{"line_number":4375,"context_line":"            \u0027/auth/tokens\u0027,"},{"line_number":4376,"context_line":"            headers\u003d{\u0027X-Subject-Token\u0027: token},"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_82a59cb6","line":4373,"in_reply_to":"5aef4532_17471e1e","updated":"2016-03-08 19:16:48.000000000","message":"Done","commit_id":"bf2c7314df0fbea8cbbf23b852d151475ce761d6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3dc30ad7e04f7d4881e9b5182a9def57056bece7","unresolved":false,"context_lines":[{"line_number":4377,"context_line":"            expected_status\u003dexpected_status)"},{"line_number":4378,"context_line":""},{"line_number":4379,"context_line":"    # TODO(lbragstad): Remove this once its no longer referenced in this class."},{"line_number":4380,"context_line":"    def _set_user_enabled(self, user, enabled\u003dTrue):"},{"line_number":4381,"context_line":"        user[\u0027enabled\u0027] \u003d enabled"},{"line_number":4382,"context_line":"        self.identity_api.update_user(user[\u0027id\u0027], user)"},{"line_number":4383,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_374cda41","line":4380,"updated":"2016-03-08 14:47:45.000000000","message":"move this back where it was so this is easier to review.","commit_id":"bf2c7314df0fbea8cbbf23b852d151475ce761d6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c7ce4c342a1deb001cfc22da810d750edd194740","unresolved":false,"context_lines":[{"line_number":4377,"context_line":"            expected_status\u003dexpected_status)"},{"line_number":4378,"context_line":""},{"line_number":4379,"context_line":"    # TODO(lbragstad): Remove this once its no longer referenced in this class."},{"line_number":4380,"context_line":"    def _set_user_enabled(self, user, enabled\u003dTrue):"},{"line_number":4381,"context_line":"        user[\u0027enabled\u0027] \u003d enabled"},{"line_number":4382,"context_line":"        self.identity_api.update_user(user[\u0027id\u0027], user)"},{"line_number":4383,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_c2afa492","line":4380,"in_reply_to":"5aef4532_374cda41","updated":"2016-03-08 19:16:48.000000000","message":"Done","commit_id":"bf2c7314df0fbea8cbbf23b852d151475ce761d6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3dc30ad7e04f7d4881e9b5182a9def57056bece7","unresolved":false,"context_lines":[{"line_number":4413,"context_line":"            expected_status\u003dexpected_status)"},{"line_number":4414,"context_line":""},{"line_number":4415,"context_line":"    # TODO(lbragstad): Remove this once its no longer referenced in this class."},{"line_number":4416,"context_line":"    def _get_unscoped_token(self):"},{"line_number":4417,"context_line":"        auth_data \u003d self.build_authentication_request("},{"line_number":4418,"context_line":"            user_id\u003dself.user[\u0027id\u0027],"},{"line_number":4419,"context_line":"            password\u003dself.user[\u0027password\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_97ecce2a","line":4416,"updated":"2016-03-08 14:47:45.000000000","message":"move this back where it was so this is easier to review.","commit_id":"bf2c7314df0fbea8cbbf23b852d151475ce761d6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c7ce4c342a1deb001cfc22da810d750edd194740","unresolved":false,"context_lines":[{"line_number":4413,"context_line":"            expected_status\u003dexpected_status)"},{"line_number":4414,"context_line":""},{"line_number":4415,"context_line":"    # TODO(lbragstad): Remove this once its no longer referenced in this class."},{"line_number":4416,"context_line":"    def _get_unscoped_token(self):"},{"line_number":4417,"context_line":"        auth_data \u003d self.build_authentication_request("},{"line_number":4418,"context_line":"            user_id\u003dself.user[\u0027id\u0027],"},{"line_number":4419,"context_line":"            password\u003dself.user[\u0027password\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_22976849","line":4416,"in_reply_to":"5aef4532_97ecce2a","updated":"2016-03-08 19:16:48.000000000","message":"Done","commit_id":"bf2c7314df0fbea8cbbf23b852d151475ce761d6"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"c60989fd6230f7b5370010664fd3f80aac1d3adc","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        # Disable the user\u0027s domain"},{"line_number":208,"context_line":"        self.domain[\u0027enabled\u0027] \u003d False"},{"line_number":209,"context_line":"        self.resource_api.update_domain(self.domain[\u0027id\u0027], self.domain)"},{"line_number":210,"context_line":"        # Ensure validating a token for a disabled user fails"},{"line_number":211,"context_line":"        self.assertRaises(exception.TokenNotFound,"},{"line_number":212,"context_line":"                          self.token_provider_api.validate_token,"},{"line_number":213,"context_line":"                          unscoped_token)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_447eb719","line":210,"updated":"2016-03-09 19:59:07.000000000","message":"nit: Ensure validating a token for a disabled user\u0027s domain fails","commit_id":"9b0cd7d633ec7a8f4e40c52619ba93e4e231b40b"}]}
