)]}'
{"keystone/tests/unit/test_backend.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3329b6143dd841d3ac81ee84ceede2d899198946","unresolved":false,"context_lines":[{"line_number":2584,"context_line":"                          project2)"},{"line_number":2585,"context_line":""},{"line_number":2586,"context_line":"    @unit.skip_if_no_multiple_domains_support"},{"line_number":2587,"context_line":"    @test_utils.wip(\u0027waiting for projects acting as domains implementation\u0027)"},{"line_number":2588,"context_line":"    def test_delete_domain_with_project_api(self):"},{"line_number":2589,"context_line":"        project \u003d unit.new_project_ref(domain_id\u003dNone,"},{"line_number":2590,"context_line":"                                       is_domain\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_682a7480","side":"PARENT","line":2587,"range":{"start_line":2587,"start_character":4,"end_line":2587,"end_character":19},"updated":"2016-01-02 13:12:08.000000000","message":"these change is useless, all of these wip will be open and removed when the feature is eventually enabled.","commit_id":"e7da23e1707c2d5527065e4094799cf6e437007b"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d4f0b13abd0e3e767576a83b3f792582c236519a","unresolved":false,"context_lines":[{"line_number":2584,"context_line":"                          project2)"},{"line_number":2585,"context_line":""},{"line_number":2586,"context_line":"    @unit.skip_if_no_multiple_domains_support"},{"line_number":2587,"context_line":"    @test_utils.wip(\u0027waiting for projects acting as domains implementation\u0027)"},{"line_number":2588,"context_line":"    def test_delete_domain_with_project_api(self):"},{"line_number":2589,"context_line":"        project \u003d unit.new_project_ref(domain_id\u003dNone,"},{"line_number":2590,"context_line":"                                       is_domain\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_17108900","side":"PARENT","line":2587,"range":{"start_line":2587,"start_character":4,"end_line":2587,"end_character":19},"in_reply_to":"fa69d971_682a7480","updated":"2016-01-04 20:14:28.000000000","message":"they\u0027re not exactly useless. This is done to make the patches chain smalles. The one after this, for example, have about 800 lines. If you could review it and give us some suggestions on where to split, it\u0027d be awesome!","commit_id":"e7da23e1707c2d5527065e4094799cf6e437007b"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3329b6143dd841d3ac81ee84ceede2d899198946","unresolved":false,"context_lines":[{"line_number":803,"context_line":"        project[\u0027id\u0027] \u003d \u0027fake2\u0027"},{"line_number":804,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":805,"context_line":"                          self.resource_api.create_project,"},{"line_number":806,"context_line":"                          project_id,"},{"line_number":807,"context_line":"                          project)"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"    def test_create_duplicate_is_domain_project_name_fails(self):"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_48ea1011","line":806,"range":{"start_line":806,"start_character":26,"end_line":806,"end_character":36},"updated":"2016-01-02 13:12:08.000000000","message":"change this to project[\u0027id\u0027], i believe this tesetcase gives the wrong value for this parameters, this could be a separate review.","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d4f0b13abd0e3e767576a83b3f792582c236519a","unresolved":false,"context_lines":[{"line_number":803,"context_line":"        project[\u0027id\u0027] \u003d \u0027fake2\u0027"},{"line_number":804,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":805,"context_line":"                          self.resource_api.create_project,"},{"line_number":806,"context_line":"                          project_id,"},{"line_number":807,"context_line":"                          project)"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"    def test_create_duplicate_is_domain_project_name_fails(self):"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_3c3fb4d7","line":806,"range":{"start_line":806,"start_character":26,"end_line":806,"end_character":36},"in_reply_to":"fa69d971_48ea1011","updated":"2016-01-04 20:14:28.000000000","message":"That\u0027s true.. I\u0027ll fix in a follow-up patchset","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3329b6143dd841d3ac81ee84ceede2d899198946","unresolved":false,"context_lines":[{"line_number":807,"context_line":"                          project)"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"    def test_create_duplicate_is_domain_project_name_fails(self):"},{"line_number":810,"context_line":"        project_id \u003d uuid.uuid4().hex"},{"line_number":811,"context_line":"        project \u003d {\u0027id\u0027: project_id, \u0027name\u0027: \u0027fake\u0027,"},{"line_number":812,"context_line":"                   \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":813,"context_line":"                   \u0027is_domain\u0027: True}"},{"line_number":814,"context_line":"        self.resource_api.create_project(project_id, project)"},{"line_number":815,"context_line":"        project[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":816,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":817,"context_line":"                          self.resource_api.create_project,"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_ed73d6e5","line":814,"range":{"start_line":810,"start_character":0,"end_line":814,"end_character":61},"updated":"2016-01-02 13:12:08.000000000","message":"could you pls switch to use unit.new_project_ref()?","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d4f0b13abd0e3e767576a83b3f792582c236519a","unresolved":false,"context_lines":[{"line_number":807,"context_line":"                          project)"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"    def test_create_duplicate_is_domain_project_name_fails(self):"},{"line_number":810,"context_line":"        project_id \u003d uuid.uuid4().hex"},{"line_number":811,"context_line":"        project \u003d {\u0027id\u0027: project_id, \u0027name\u0027: \u0027fake\u0027,"},{"line_number":812,"context_line":"                   \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":813,"context_line":"                   \u0027is_domain\u0027: True}"},{"line_number":814,"context_line":"        self.resource_api.create_project(project_id, project)"},{"line_number":815,"context_line":"        project[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":816,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":817,"context_line":"                          self.resource_api.create_project,"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_57004101","line":814,"range":{"start_line":810,"start_character":0,"end_line":814,"end_character":61},"in_reply_to":"fa69d971_ed73d6e5","updated":"2016-01-04 20:14:28.000000000","message":"Done","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3329b6143dd841d3ac81ee84ceede2d899198946","unresolved":false,"context_lines":[{"line_number":815,"context_line":"        project[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":816,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":817,"context_line":"                          self.resource_api.create_project,"},{"line_number":818,"context_line":"                          project_id,"},{"line_number":819,"context_line":"                          project)"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def test_create_duplicate_project_name_in_different_domains(self):"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_68ed9424","line":818,"range":{"start_line":818,"start_character":26,"end_line":818,"end_character":37},"updated":"2016-01-02 13:12:08.000000000","message":"change this to project[\u0027id\u0027]","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d4f0b13abd0e3e767576a83b3f792582c236519a","unresolved":false,"context_lines":[{"line_number":815,"context_line":"        project[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":816,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":817,"context_line":"                          self.resource_api.create_project,"},{"line_number":818,"context_line":"                          project_id,"},{"line_number":819,"context_line":"                          project)"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def test_create_duplicate_project_name_in_different_domains(self):"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_375b4d30","line":818,"range":{"start_line":818,"start_character":26,"end_line":818,"end_character":37},"in_reply_to":"fa69d971_68ed9424","updated":"2016-01-04 20:14:28.000000000","message":"Done","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3329b6143dd841d3ac81ee84ceede2d899198946","unresolved":false,"context_lines":[{"line_number":2515,"context_line":"        return projects"},{"line_number":2516,"context_line":""},{"line_number":2517,"context_line":"    @unit.skip_if_no_multiple_domains_support"},{"line_number":2518,"context_line":"    def test_create_domain_with_project_api(self):"},{"line_number":2519,"context_line":"        project \u003d unit.new_project_ref(is_domain\u003dTrue)"},{"line_number":2520,"context_line":"        ref \u003d self.resource_api.create_project(project[\u0027id\u0027], project)"},{"line_number":2521,"context_line":"        self.assertTrue(ref[\u0027is_domain\u0027])"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_6803540e","line":2518,"range":{"start_line":2518,"start_character":8,"end_line":2518,"end_character":43},"updated":"2016-01-02 13:12:08.000000000","message":"create a new test to test the new feature rather than modify existing testcase that still valid.","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d4f0b13abd0e3e767576a83b3f792582c236519a","unresolved":false,"context_lines":[{"line_number":2515,"context_line":"        return projects"},{"line_number":2516,"context_line":""},{"line_number":2517,"context_line":"    @unit.skip_if_no_multiple_domains_support"},{"line_number":2518,"context_line":"    def test_create_domain_with_project_api(self):"},{"line_number":2519,"context_line":"        project \u003d unit.new_project_ref(is_domain\u003dTrue)"},{"line_number":2520,"context_line":"        ref \u003d self.resource_api.create_project(project[\u0027id\u0027], project)"},{"line_number":2521,"context_line":"        self.assertTrue(ref[\u0027is_domain\u0027])"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_57836156","line":2518,"range":{"start_line":2518,"start_character":8,"end_line":2518,"end_character":43},"in_reply_to":"fa69d971_6803540e","updated":"2016-01-04 20:14:28.000000000","message":"this test does not make sense as it is... some design things were changed during this process, like the fact that the root_project has no longer a domain_id","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3329b6143dd841d3ac81ee84ceede2d899198946","unresolved":false,"context_lines":[{"line_number":2583,"context_line":"    @wip(\u0027waiting for projects acting as domains implementation\u0027)"},{"line_number":2584,"context_line":"    def test_empty_domain_id_is_set_as_parent_id(self):"},{"line_number":2585,"context_line":"        root_project_id \u003d uuid.uuid4().hex"},{"line_number":2586,"context_line":"        root_project \u003d {\u0027id\u0027: root_project_id,"},{"line_number":2587,"context_line":"                        \u0027description\u0027: \u0027\u0027,"},{"line_number":2588,"context_line":"                        \u0027domain_id\u0027: None,"},{"line_number":2589,"context_line":"                        \u0027enabled\u0027: True,"},{"line_number":2590,"context_line":"                        \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":2591,"context_line":"                        \u0027parent_id\u0027: None,"},{"line_number":2592,"context_line":"                        \u0027is_domain\u0027: True}"},{"line_number":2593,"context_line":"        self.resource_api.create_project(root_project[\u0027id\u0027], root_project)"},{"line_number":2594,"context_line":""},{"line_number":2595,"context_line":"        # Creating a sub-project"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_c814c045","line":2592,"range":{"start_line":2586,"start_character":0,"end_line":2592,"end_character":42},"updated":"2016-01-02 13:12:08.000000000","message":"pls use unit.new_project_ref() and also apply to other occurrence.","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d4f0b13abd0e3e767576a83b3f792582c236519a","unresolved":false,"context_lines":[{"line_number":2583,"context_line":"    @wip(\u0027waiting for projects acting as domains implementation\u0027)"},{"line_number":2584,"context_line":"    def test_empty_domain_id_is_set_as_parent_id(self):"},{"line_number":2585,"context_line":"        root_project_id \u003d uuid.uuid4().hex"},{"line_number":2586,"context_line":"        root_project \u003d {\u0027id\u0027: root_project_id,"},{"line_number":2587,"context_line":"                        \u0027description\u0027: \u0027\u0027,"},{"line_number":2588,"context_line":"                        \u0027domain_id\u0027: None,"},{"line_number":2589,"context_line":"                        \u0027enabled\u0027: True,"},{"line_number":2590,"context_line":"                        \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":2591,"context_line":"                        \u0027parent_id\u0027: None,"},{"line_number":2592,"context_line":"                        \u0027is_domain\u0027: True}"},{"line_number":2593,"context_line":"        self.resource_api.create_project(root_project[\u0027id\u0027], root_project)"},{"line_number":2594,"context_line":""},{"line_number":2595,"context_line":"        # Creating a sub-project"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_37802d46","line":2592,"range":{"start_line":2586,"start_character":0,"end_line":2592,"end_character":42},"in_reply_to":"fa69d971_c814c045","updated":"2016-01-04 20:14:28.000000000","message":"Done","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"1762c9477aeae48ebaaf089f883d537882d302d7","unresolved":false,"context_lines":[{"line_number":6236,"context_line":"        }"},{"line_number":6237,"context_line":"        self.execute_assignment_plan(test_plan)"},{"line_number":6238,"context_line":""},{"line_number":6239,"context_line":"    @wip(\u0027waiting for projects acting as domains implementation\u0027)"},{"line_number":6240,"context_line":"    def test_list_projects_for_user_with_inherited_group_project_grants(self):"},{"line_number":6241,"context_line":"        \"\"\"Test inherited role assignments for groups on nested projects."},{"line_number":6242,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"da6ed579_fe2ae57d","line":6239,"range":{"start_line":6239,"start_character":4,"end_line":6239,"end_character":65},"updated":"2016-01-12 01:50:05.000000000","message":"I really, really don\u0027t like this.  If we let this merge, then until you get your full implementation patch merged we have reduced out testing coverage.  This cannot be the right approach.","commit_id":"df959525a66b71035d5147de7081302d258c8228"}],"keystone/tests/unit/test_backend_ldap.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3329b6143dd841d3ac81ee84ceede2d899198946","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def test_list_projects(self):"},{"line_number":170,"context_line":"        projects \u003d self.resource_api.list_projects()"},{"line_number":171,"context_line":"        # Sum expected projects with is_domain \u003d True projects"},{"line_number":172,"context_line":"        self.assertEqual(4 + self.domain_count, len(projects))"},{"line_number":173,"context_line":"        project_ids \u003d []"},{"line_number":174,"context_line":"        for project in projects:"},{"line_number":175,"context_line":"            project_ids.append(project.get(\u0027id\u0027))"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_28247cad","line":172,"range":{"start_line":172,"start_character":29,"end_line":172,"end_character":46},"updated":"2016-01-02 13:12:08.000000000","message":"every domain in ldap backend should count?","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d4f0b13abd0e3e767576a83b3f792582c236519a","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def test_list_projects(self):"},{"line_number":170,"context_line":"        projects \u003d self.resource_api.list_projects()"},{"line_number":171,"context_line":"        # Sum expected projects with is_domain \u003d True projects"},{"line_number":172,"context_line":"        self.assertEqual(4 + self.domain_count, len(projects))"},{"line_number":173,"context_line":"        project_ids \u003d []"},{"line_number":174,"context_line":"        for project in projects:"},{"line_number":175,"context_line":"            project_ids.append(project.get(\u0027id\u0027))"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_f7693526","line":172,"range":{"start_line":172,"start_character":29,"end_line":172,"end_character":46},"in_reply_to":"fa69d971_28247cad","updated":"2016-01-04 20:14:28.000000000","message":"yes, in LDAP there is only 1 domain, and it\u0027ll be a project, until we remove ldap as resource backend :(","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3329b6143dd841d3ac81ee84ceede2d899198946","unresolved":false,"context_lines":[{"line_number":1706,"context_line":"        self._assert_delete_is_domain_project_not_allowed()"},{"line_number":1707,"context_line":""},{"line_number":1708,"context_line":"    @wip(\u0027waiting for projects acting as domains implementation\u0027)"},{"line_number":1709,"context_line":"    def test_delete_domain(self):"},{"line_number":1710,"context_line":"        self._assert_delete_is_domain_project_not_allowed()"},{"line_number":1711,"context_line":""},{"line_number":1712,"context_line":"    @wip(\u0027waiting for projects acting as domains implementation\u0027)"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_a8306ce9","line":1709,"range":{"start_line":1709,"start_character":4,"end_line":1709,"end_character":32},"updated":"2016-01-02 13:12:08.000000000","message":"this testcase should in test_backend.py and override if needed, comments the reason if the domain deletion is totally banned for ldap backend.","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d4f0b13abd0e3e767576a83b3f792582c236519a","unresolved":false,"context_lines":[{"line_number":1706,"context_line":"        self._assert_delete_is_domain_project_not_allowed()"},{"line_number":1707,"context_line":""},{"line_number":1708,"context_line":"    @wip(\u0027waiting for projects acting as domains implementation\u0027)"},{"line_number":1709,"context_line":"    def test_delete_domain(self):"},{"line_number":1710,"context_line":"        self._assert_delete_is_domain_project_not_allowed()"},{"line_number":1711,"context_line":""},{"line_number":1712,"context_line":"    @wip(\u0027waiting for projects acting as domains implementation\u0027)"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa69d971_b74addaa","line":1709,"range":{"start_line":1709,"start_character":4,"end_line":1709,"end_character":32},"in_reply_to":"fa69d971_a8306ce9","updated":"2016-01-04 20:14:28.000000000","message":"domain is immutable in LDAP... anyway, let\u0027s not pay much attention to that, once it should be removed in this release","commit_id":"93e259ff2ffbf46e4b9d0b53b87ba2e030b97232"}]}
