)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af2e60a8fa1fcbbbe702be09ee343c5370b878e8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Adam Young \u003cayoung@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-08 14:12:24 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Check and delete for  policy_association_for_region_and_service"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calls proper function in the manager and driver"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_08ea310f","line":7,"updated":"2014-12-09 00:10:57.000000000","message":"There are two space characters between \u0027for\u0027 and \u0027policy_association_for_region_and_service\u0027.","commit_id":"915dd0dbfbc5d463b0727b120c9f71a8d812a439"}],"keystone/contrib/endpoint_policy/controllers.py":[{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"3e4df618e20b6f9b56c1fa521d3de3999651596f","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        self.policy_api.get_policy(policy_id)"},{"line_number":121,"context_line":"        self.catalog_api.get_service(service_id)"},{"line_number":122,"context_line":"        self.catalog_api.get_region(region_id)"},{"line_number":123,"context_line":"        self.endpoint_policy_api.check_policy_association("},{"line_number":124,"context_line":"            policy_id, service_id\u003dservice_id, region_id\u003dregion_id)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    @controller.protected()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_66e62f17","line":123,"updated":"2014-12-11 02:42:01.000000000","message":"Copy-paste errors ?","commit_id":"f10ff9aed6278eb217b119682761225459e0c674"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"0b974a987bf675d35d3c5b0e8be15138ee3667cb","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        self.policy_api.get_policy(policy_id)"},{"line_number":121,"context_line":"        self.catalog_api.get_service(service_id)"},{"line_number":122,"context_line":"        self.catalog_api.get_region(region_id)"},{"line_number":123,"context_line":"        self.endpoint_policy_api.check_policy_association("},{"line_number":124,"context_line":"            policy_id, service_id\u003dservice_id, region_id\u003dregion_id)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    @controller.protected()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_9df764f5","line":123,"in_reply_to":"3a961159_66e62f17","updated":"2014-12-16 00:43:41.000000000","message":"Yeah it looks like it was an original copy-paste issue. And we don\u0027t test it :(","commit_id":"f10ff9aed6278eb217b119682761225459e0c674"}],"keystone/tests/test_v3_endpoint_policy.py":[{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"6e03f724808fb8331881d5a9dc6ab5e66148fc40","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        self.get(url, expected_status\u003d204)"},{"line_number":89,"context_line":"        self.head(url, expected_status\u003d204)"},{"line_number":90,"context_line":"        self.delete(url, expected_status\u003d204)"},{"line_number":91,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_get_policy_for_endpoint(self):"},{"line_number":94,"context_line":"        \"\"\"GET /endpoints/{endpoint_id}/policy.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_3ccbaba6","line":91,"updated":"2014-12-09 03:42:08.000000000","message":"I think we should add a new test which tests 404 error for head method.","commit_id":"915dd0dbfbc5d463b0727b120c9f71a8d812a439"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b4ce7c64108ed5d08db0613ed507b5955faf4423","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.head(url, expected_status\u003d204)"},{"line_number":90,"context_line":"        self.delete(url, expected_status\u003d204)"},{"line_number":91,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":92,"context_line":"        self.head(url, expected_status\u003d404)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_get_policy_for_endpoint(self):"},{"line_number":95,"context_line":"        \"\"\"GET /endpoints/{endpoint_id}/policy.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_258bcb1f","line":92,"updated":"2014-12-15 15:34:18.000000000","message":"I think this should be a new test case that is more descriptive of the case we are covering here. Other test cases only go through the PUT, GET, HEAD, and DELETE respectively, but here we do an additional GET and HEAD after the DELETE. I think it would be more descriptive to have a test cases that explicitly points this out.\n\nHere we want to cover a specific case CRUD case.","commit_id":"f10ff9aed6278eb217b119682761225459e0c674"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"c192d0ce410c81ca0a954ff571ee125098c62bbf","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.head(url, expected_status\u003d204)"},{"line_number":90,"context_line":"        self.delete(url, expected_status\u003d204)"},{"line_number":91,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":92,"context_line":"        self.head(url, expected_status\u003d404)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_get_policy_for_endpoint(self):"},{"line_number":95,"context_line":"        \"\"\"GET /endpoints/{endpoint_id}/policy.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_bb37dae1","line":92,"in_reply_to":"3a961159_258bcb1f","updated":"2014-12-15 16:03:35.000000000","message":"Nice suggestion!","commit_id":"f10ff9aed6278eb217b119682761225459e0c674"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"0b974a987bf675d35d3c5b0e8be15138ee3667cb","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.head(url, expected_status\u003d204)"},{"line_number":90,"context_line":"        self.delete(url, expected_status\u003d204)"},{"line_number":91,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":92,"context_line":"        self.head(url, expected_status\u003d404)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_get_policy_for_endpoint(self):"},{"line_number":95,"context_line":"        \"\"\"GET /endpoints/{endpoint_id}/policy.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_fde5c838","line":92,"in_reply_to":"3a961159_bb37dae1","updated":"2014-12-16 00:43:41.000000000","message":"+1","commit_id":"f10ff9aed6278eb217b119682761225459e0c674"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a6dc6c0e3bc014d52d249a8585afed7e635912d4","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        self.catalog_api.create_region(self.region)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    # endpoint policy crud tests"},{"line_number":51,"context_line":"    def _crud_test(self, url):"},{"line_number":52,"context_line":"        # although this is redundant with the crud test, it is essential"},{"line_number":53,"context_line":"        # to test pre conditions and post conditions.  The first two tests"},{"line_number":54,"context_line":"        # ensure that we don\u0027t get false negatives"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_ca110bb1","line":51,"updated":"2014-12-16 16:50:00.000000000","message":"This works","commit_id":"8d7123dd39c25ed1702cc63a3e74ac28a2251c38"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"f22da5d177e2b46acbee6e942ce3ea0ecb039d4e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        # to test pre conditions and post conditions.  The first two tests"},{"line_number":54,"context_line":"        # ensure that we don\u0027t get false negatives"},{"line_number":55,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":56,"context_line":"        self.head(url, expected_status\u003d404)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        self.put(url, expected_status\u003d204)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_ca8e6b27","line":56,"updated":"2014-12-16 16:45:14.000000000","message":"Out of scope for this patch, but i think we can squash these into just \".head\" as head() should be made to also use a .get to compare everything.\n\nAlternatively add a kwarg to .get() to say \"check a head request matches as expected\" rather than needing both explicitly.","commit_id":"8d7123dd39c25ed1702cc63a3e74ac28a2251c38"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a6dc6c0e3bc014d52d249a8585afed7e635912d4","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        self.put(url, expected_status\u003d204)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        # test that the new resource is accessable."},{"line_number":61,"context_line":"        self.get(url, expected_status\u003d204)"},{"line_number":62,"context_line":"        self.head(url, expected_status\u003d204)"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_4a3efb2a","line":60,"updated":"2014-12-16 16:50:00.000000000","message":"accessible*","commit_id":"8d7123dd39c25ed1702cc63a3e74ac28a2251c38"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a6dc6c0e3bc014d52d249a8585afed7e635912d4","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        self.delete(url, expected_status\u003d204)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # test that the deleted resource is no longer accessable"},{"line_number":67,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":68,"context_line":"        self.head(url, expected_status\u003d404)"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_8a48e3cd","line":66,"updated":"2014-12-16 16:50:00.000000000","message":"accessible*","commit_id":"8d7123dd39c25ed1702cc63a3e74ac28a2251c38"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"82b6c5aa00ad67567c22e3924fd94b0bb601bb23","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                   \u0027region_id\u0027: self.region[\u0027id\u0027]}"},{"line_number":97,"context_line":"        self._crud_test(url)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def test_delete_removes_policy(self):"},{"line_number":100,"context_line":"        url \u003d (\u0027/policies/%(policy_id)s/OS-ENDPOINT-POLICY\u0027"},{"line_number":101,"context_line":"               \u0027/services/%(service_id)s/regions/%(region_id)s\u0027) % {"},{"line_number":102,"context_line":"                   \u0027policy_id\u0027: self.policy[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_858ff474","line":99,"updated":"2014-12-16 17:03:58.000000000","message":"What\u0027s the difference between this test and the just above one?","commit_id":"e205d0d51612196a4d41499fec04023d20828254"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"f04d9a91b1135df540fa4d30840a7926c61d3b86","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                   \u0027region_id\u0027: self.region[\u0027id\u0027]}"},{"line_number":97,"context_line":"        self._crud_test(url)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def test_delete_removes_policy(self):"},{"line_number":100,"context_line":"        url \u003d (\u0027/policies/%(policy_id)s/OS-ENDPOINT-POLICY\u0027"},{"line_number":101,"context_line":"               \u0027/services/%(service_id)s/regions/%(region_id)s\u0027) % {"},{"line_number":102,"context_line":"                   \u0027policy_id\u0027: self.policy[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_c55f3c74","line":99,"in_reply_to":"3a961159_858ff474","updated":"2014-12-16 17:13:49.000000000","message":"The refactor for _crud_tests make these the same thing afaict.","commit_id":"e205d0d51612196a4d41499fec04023d20828254"}]}
