)]}'
{"tempest/api/identity/admin/v3/test_projects.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"c04758b819e0d424df25ac7cbda133026567e9e4","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    @test.idempotent_id(\u00275f5ce272-ad23-4400-9015-e5bed81d07b7\u0027)"},{"line_number":181,"context_line":"    def test_get_available_project_scopes(self):"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        # Create a couple projects"},{"line_number":184,"context_line":"        project1_name \u003d data_utils.rand_name(name\u003d\u0027project\u0027)"},{"line_number":185,"context_line":"        project1 \u003d self.client.create_project("}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_b82dd396","line":182,"updated":"2016-01-22 17:25:25.000000000","message":"Please, remove blank line.","commit_id":"80a0471eb6e620dff52b23712c7d6aa859b9cc69"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"0392bdc4719ab5e2c30284bfa71f797baf310701","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    @test.idempotent_id(\u00275f5ce272-ad23-4400-9015-e5bed81d07b7\u0027)"},{"line_number":181,"context_line":"    def test_get_available_project_scopes(self):"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        # Create a couple projects"},{"line_number":184,"context_line":"        project1_name \u003d data_utils.rand_name(name\u003d\u0027project\u0027)"},{"line_number":185,"context_line":"        project1 \u003d self.client.create_project("}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_73597934","line":182,"in_reply_to":"9a68dd71_b82dd396","updated":"2016-01-25 13:38:39.000000000","message":"Done","commit_id":"80a0471eb6e620dff52b23712c7d6aa859b9cc69"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"c04758b819e0d424df25ac7cbda133026567e9e4","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        self.client.assign_user_role(project1[\u0027id\u0027], user_id, role[\u0027id\u0027])"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # get the project scopes for non-admin-user"},{"line_number":205,"context_line":"        actual_project_list \u003d \\"},{"line_number":206,"context_line":"            self.non_admin_client.get_available_project_scopes()[\u0027projects\u0027]"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # search for the project with name project1_name"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_f85d8b15","line":205,"range":{"start_line":205,"start_character":30,"end_line":205,"end_character":31},"updated":"2016-01-22 17:25:25.000000000","message":"Please, use parentheses instead of \"\\\".","commit_id":"80a0471eb6e620dff52b23712c7d6aa859b9cc69"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"0392bdc4719ab5e2c30284bfa71f797baf310701","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        self.client.assign_user_role(project1[\u0027id\u0027], user_id, role[\u0027id\u0027])"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # get the project scopes for non-admin-user"},{"line_number":205,"context_line":"        actual_project_list \u003d \\"},{"line_number":206,"context_line":"            self.non_admin_client.get_available_project_scopes()[\u0027projects\u0027]"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # search for the project with name project1_name"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_f3456942","line":205,"range":{"start_line":205,"start_character":30,"end_line":205,"end_character":31},"in_reply_to":"9a68dd71_f85d8b15","updated":"2016-01-25 13:38:39.000000000","message":"Done","commit_id":"80a0471eb6e620dff52b23712c7d6aa859b9cc69"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"937efb5d8e48027c272442f9db62704bfce5b866","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        # search for the project with name project1_name"},{"line_number":208,"context_line":"        # project1 should be in the project scopes"},{"line_number":209,"context_line":"        actual_project1 \u003d [r for r in actual_project_list"},{"line_number":210,"context_line":"                           if r[\u0027name\u0027] \u003d\u003d project1_name][0]"},{"line_number":211,"context_line":"        self.assertEqual(actual_project1[\u0027name\u0027], project1_name)"},{"line_number":212,"context_line":"        self.assertEqual(actual_project1[\u0027enabled\u0027], True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_90ff1934","line":209,"updated":"2016-01-27 12:47:10.000000000","message":"If their is a bug in Keystone, this line is going to throw a cryptic IndexError. You should do the list comprehension and then, in a another line assert that the list is exactly one in size.","commit_id":"1fb4d3251f1c118b7dba204cff0c2a32f7460ee2"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"00a37d7e33635c02124fd377b02118f79baea8e5","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        # search for the project with name project1_name"},{"line_number":208,"context_line":"        # project1 should be in the project scopes"},{"line_number":209,"context_line":"        actual_project1 \u003d [r for r in actual_project_list"},{"line_number":210,"context_line":"                           if r[\u0027name\u0027] \u003d\u003d project1_name][0]"},{"line_number":211,"context_line":"        self.assertEqual(actual_project1[\u0027name\u0027], project1_name)"},{"line_number":212,"context_line":"        self.assertEqual(actual_project1[\u0027enabled\u0027], True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_3c039eba","line":209,"in_reply_to":"7a5de9d1_90ff1934","updated":"2016-01-27 13:38:35.000000000","message":"Thanks, Jordan. I have fixed it.","commit_id":"1fb4d3251f1c118b7dba204cff0c2a32f7460ee2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"937efb5d8e48027c272442f9db62704bfce5b866","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # project1 should be in the project scopes"},{"line_number":209,"context_line":"        actual_project1 \u003d [r for r in actual_project_list"},{"line_number":210,"context_line":"                           if r[\u0027name\u0027] \u003d\u003d project1_name][0]"},{"line_number":211,"context_line":"        self.assertEqual(actual_project1[\u0027name\u0027], project1_name)"},{"line_number":212,"context_line":"        self.assertEqual(actual_project1[\u0027enabled\u0027], True)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        # project2 should NOT be in the project scopes"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_109a4915","line":211,"updated":"2016-01-27 12:47:10.000000000","message":"Nit: I think we prefer to use asserEqual(expected, actual)","commit_id":"1fb4d3251f1c118b7dba204cff0c2a32f7460ee2"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"00a37d7e33635c02124fd377b02118f79baea8e5","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # project1 should be in the project scopes"},{"line_number":209,"context_line":"        actual_project1 \u003d [r for r in actual_project_list"},{"line_number":210,"context_line":"                           if r[\u0027name\u0027] \u003d\u003d project1_name][0]"},{"line_number":211,"context_line":"        self.assertEqual(actual_project1[\u0027name\u0027], project1_name)"},{"line_number":212,"context_line":"        self.assertEqual(actual_project1[\u0027enabled\u0027], True)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        # project2 should NOT be in the project scopes"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_fc81864e","line":211,"in_reply_to":"7a5de9d1_109a4915","updated":"2016-01-27 13:38:35.000000000","message":"Done","commit_id":"1fb4d3251f1c118b7dba204cff0c2a32f7460ee2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"937efb5d8e48027c272442f9db62704bfce5b866","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        # project2 should NOT be in the project scopes"},{"line_number":215,"context_line":"        project_list \u003d [r for r in actual_project_list"},{"line_number":216,"context_line":"                        if r[\u0027name\u0027] \u003d\u003d project2_name]"},{"line_number":217,"context_line":"        self.assertEqual(len(project_list), 0)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_70b05d8c","line":217,"updated":"2016-01-27 12:47:10.000000000","message":"Use assertEmpty defined in tempest/test.py","commit_id":"1fb4d3251f1c118b7dba204cff0c2a32f7460ee2"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"00a37d7e33635c02124fd377b02118f79baea8e5","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        # project2 should NOT be in the project scopes"},{"line_number":215,"context_line":"        project_list \u003d [r for r in actual_project_list"},{"line_number":216,"context_line":"                        if r[\u0027name\u0027] \u003d\u003d project2_name]"},{"line_number":217,"context_line":"        self.assertEqual(len(project_list), 0)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_7c96f695","line":217,"in_reply_to":"7a5de9d1_70b05d8c","updated":"2016-01-27 13:38:35.000000000","message":"Done","commit_id":"1fb4d3251f1c118b7dba204cff0c2a32f7460ee2"}],"tempest/services/identity/v3/json/identity_client.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"937efb5d8e48027c272442f9db62704bfce5b866","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":458,"context_line":"        return service_client.ResponseBody(resp, body)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def get_available_project_scopes(self):"},{"line_number":461,"context_line":"        \"\"\"Get available project scopes.\"\"\""},{"line_number":462,"context_line":"        url \u003d \u0027auth/projects\u0027"},{"line_number":463,"context_line":"        resp, body \u003d self.get(url)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_906ab919","line":460,"updated":"2016-01-27 12:47:10.000000000","message":"Move this method around line 303","commit_id":"1fb4d3251f1c118b7dba204cff0c2a32f7460ee2"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"abb4a3c3b5431f9a8e99cd99f608b608b7065eea","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":302,"context_line":"        return service_client.ResponseBody(resp, body)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    def list_available_project_scopes(self):"},{"line_number":305,"context_line":"        \"\"\"List available project scopes.\"\"\""},{"line_number":306,"context_line":"        url \u003d \u0027auth/projects\u0027"},{"line_number":307,"context_line":"        resp, body \u003d self.get(url)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a5ae5dd_96894ccd","line":304,"range":{"start_line":304,"start_character":42,"end_line":304,"end_character":44},"updated":"2016-02-03 11:47:29.000000000","message":"Why this is named as *_scopes ? it just list the projects related to authenticated users or group","commit_id":"6930a01ad9c9710cf822a9f2da96e141f48f82f2"}]}
