)]}'
{"keystone/tests/unit/test_v3_assignment.py":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"56f691fc2447258e9479fb467fe420cc8eba8e7b","unresolved":false,"context_lines":[{"line_number":709,"context_line":""},{"line_number":710,"context_line":"        \"\"\""},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        # Create the project hierarchy"},{"line_number":713,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":714,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":715,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_5183da03","line":712,"updated":"2015-03-24 14:07:50.000000000","message":"I think that you can use the method _create_projects_hierarchy() instead to create project by project.","commit_id":"39a5c3331f3d650f1bee2e3d60e812b7182ad066"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"43f9d2efd35f2fc425e32a2e7bdf5bba683e0221","unresolved":false,"context_lines":[{"line_number":709,"context_line":""},{"line_number":710,"context_line":"        \"\"\""},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        # Create the project hierarchy"},{"line_number":713,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":714,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":715,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_b24a42c3","line":712,"in_reply_to":"1a6ced46_35ef2189","updated":"2015-03-24 17:54:10.000000000","message":"This test is based on role assignments on projects, since _create_projects_hierarchy does not returns a clean project hierarchy, it could be confusing to someone reading it to understand why I am just adding on the subproject if I want on both subproject and parent.\n\nIf we wanted to clarify this, I should make the comment a line 725 bigger to say there are something that already exists.\n\nI know using that method would save lines, but waste time from reviewers, which is expensive.\n\nPlease fell free to submit a bug and fix that method, that could return a \u0027clean\u0027 hierarchy.","commit_id":"39a5c3331f3d650f1bee2e3d60e812b7182ad066"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"abe7c284bdcc8cee7fb4bb72911dd65c1324700e","unresolved":false,"context_lines":[{"line_number":709,"context_line":""},{"line_number":710,"context_line":"        \"\"\""},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        # Create the project hierarchy"},{"line_number":713,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":714,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":715,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_d5632ddb","line":712,"in_reply_to":"1a6ced46_5183da03","updated":"2015-03-24 16:23:39.000000000","message":"_create_projects_hierarchy() uses self.project, which already have role assingments coming from fixtures. Here we need a clean scenario","commit_id":"39a5c3331f3d650f1bee2e3d60e812b7182ad066"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ccdecde3cba09f537635d421ab6808bb8a2f746a","unresolved":false,"context_lines":[{"line_number":709,"context_line":""},{"line_number":710,"context_line":"        \"\"\""},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        # Create the project hierarchy"},{"line_number":713,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":714,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":715,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_35ef2189","line":712,"in_reply_to":"1a6ced46_d5632ddb","updated":"2015-03-24 16:48:37.000000000","message":"There is role assignments just for the self.project, not for the subprojects that it\u0027s created. IMO, you can grant roles for the subprojects and make the test.","commit_id":"39a5c3331f3d650f1bee2e3d60e812b7182ad066"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"56f691fc2447258e9479fb467fe420cc8eba8e7b","unresolved":false,"context_lines":[{"line_number":863,"context_line":"        - Check that calling subtree_as_list on \u0027parent\u0027 returns \u0027subproject\u0027."},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"        \"\"\""},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"        # Create the project hierarchy"},{"line_number":868,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":869,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_d176ea3d","line":866,"updated":"2015-03-24 14:07:50.000000000","message":"same here","commit_id":"39a5c3331f3d650f1bee2e3d60e812b7182ad066"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"1c1a41df60f173ad1fa3fa5449aedcec41b2e150","unresolved":false,"context_lines":[{"line_number":690,"context_line":"        Test plan:"},{"line_number":691,"context_line":""},{"line_number":692,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":693,"context_line":"        - Assign a user a role on \u0027parent\u0027 and \u0027subproject\u0027;"},{"line_number":694,"context_line":"        - Check that calling parents_as_list on \u0027subproject\u0027 returns both"},{"line_number":695,"context_line":"          \u0027project\u0027 and \u0027parent\u0027."},{"line_number":696,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_af3b70cf","line":693,"updated":"2015-03-26 09:29:06.000000000","message":"on parent, project and subproject","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"91ff0174c7e2e654832b30fcfc816472ff54b534","unresolved":false,"context_lines":[{"line_number":690,"context_line":"        Test plan:"},{"line_number":691,"context_line":""},{"line_number":692,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":693,"context_line":"        - Assign a user a role on \u0027parent\u0027 and \u0027subproject\u0027;"},{"line_number":694,"context_line":"        - Check that calling parents_as_list on \u0027subproject\u0027 returns both"},{"line_number":695,"context_line":"          \u0027project\u0027 and \u0027parent\u0027."},{"line_number":696,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_af1feb6a","line":693,"in_reply_to":"1a6ced46_af3b70cf","updated":"2015-03-26 12:10:48.000000000","message":"Done","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2deac8a6d7c0539967a9a67c1d80324ca2cc6bde","unresolved":false,"context_lines":[{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        \"\"\""},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"        # Create the project hierarchy"},{"line_number":700,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":701,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":702,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_77a95c8f","line":699,"updated":"2015-03-25 23:29:35.000000000","message":"why not using self._create_projects_hierarchy()?","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"95869ec10cb2005d15a0e60d74afba1191c9584c","unresolved":false,"context_lines":[{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        \"\"\""},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"        # Create the project hierarchy"},{"line_number":700,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":701,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":702,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa963961_c56d0cce","line":699,"in_reply_to":"1a6ced46_4f04b717","updated":"2015-03-26 13:40:00.000000000","message":"I added a patch at the end of this chain refactoring that method.\nPlease let me know if you do not agree this is the best approach to solve these issues.","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"bc85599e4e5891324e5333047d45dde34da2832f","unresolved":false,"context_lines":[{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        \"\"\""},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"        # Create the project hierarchy"},{"line_number":700,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":701,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":702,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_b78af4bc","line":699,"in_reply_to":"1a6ced46_77a95c8f","updated":"2015-03-25 23:43:46.000000000","message":"++","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"91ff0174c7e2e654832b30fcfc816472ff54b534","unresolved":false,"context_lines":[{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        \"\"\""},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"        # Create the project hierarchy"},{"line_number":700,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":701,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":702,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_4f04b717","line":699,"in_reply_to":"1a6ced46_7d105b59","updated":"2015-03-26 12:10:48.000000000","message":"This test is based on role assignments on projects and _create_projects_hierarchy does not returns a clean project hierarchy, since it puts self.project_id as the root of the hierarchy, and there is already a role assignment on this project, defined on the sample data.\n\nIt could be confusing to someone reading it to understand why I am just adding on a role assignment in the subproject and project if I want it on all \u0027created\u0027 projects.\nIf we wanted to clarify this, I should make the comment a line 712 bigger to say there are something that already exists.\n\nI know using that method would save lines, but waste time from reviewers and maintainers, which is expensive.\n\nAs I stated on a comment in the previous patch set, anyone can fell free to submit a bug and fix that method, that could return a \u0027clean\u0027 hierarchy. I am not doing this as part of this patch since it is not related to the proposed change.","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"defc01158c9fadb212fcf99411751b0291c4815a","unresolved":false,"context_lines":[{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        \"\"\""},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"        # Create the project hierarchy"},{"line_number":700,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":701,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":702,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_7d105b59","line":699,"in_reply_to":"1a6ced46_b78af4bc","updated":"2015-03-26 01:20:44.000000000","message":"++","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"1c1a41df60f173ad1fa3fa5449aedcec41b2e150","unresolved":false,"context_lines":[{"line_number":727,"context_line":""},{"line_number":728,"context_line":"    @test_utils.wip(\u0027Waiting on bug #1434916\u0027)"},{"line_number":729,"context_line":"    def test_get_project_with_parents_as_list_with_partial_access(self):"},{"line_number":730,"context_line":"        \"\"\"Call ``GET /projects/{project_id}?parents_as_list``"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        Test plan:"},{"line_number":733,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_cf3fccb2","line":730,"updated":"2015-03-26 09:29:06.000000000","message":"not sure having this first line of the doc string the same as the previous test tells us much","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"76a80a8d6109717170a0ae5552c938740918cb3d","unresolved":false,"context_lines":[{"line_number":727,"context_line":""},{"line_number":728,"context_line":"    @test_utils.wip(\u0027Waiting on bug #1434916\u0027)"},{"line_number":729,"context_line":"    def test_get_project_with_parents_as_list_with_partial_access(self):"},{"line_number":730,"context_line":"        \"\"\"Call ``GET /projects/{project_id}?parents_as_list``"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        Test plan:"},{"line_number":733,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_12b10447","line":730,"in_reply_to":"1a6ced46_cf3fccb2","updated":"2015-03-26 12:12:20.000000000","message":"Will improve this.","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2deac8a6d7c0539967a9a67c1d80324ca2cc6bde","unresolved":false,"context_lines":[{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        Test plan:"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":735,"context_line":"        - Assign a user a role on \u0027parent\u0027 and \u0027subproject\u0027;"},{"line_number":736,"context_line":"        - Check that calling parents_as_list on \u0027subproject\u0027 returns \u0027parent\u0027."},{"line_number":737,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_57c1c052","line":734,"updated":"2015-03-25 23:29:35.000000000","message":"extra space after ,","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"91ff0174c7e2e654832b30fcfc816472ff54b534","unresolved":false,"context_lines":[{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        Test plan:"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":735,"context_line":"        - Assign a user a role on \u0027parent\u0027 and \u0027subproject\u0027;"},{"line_number":736,"context_line":"        - Check that calling parents_as_list on \u0027subproject\u0027 returns \u0027parent\u0027."},{"line_number":737,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_b206701b","line":734,"in_reply_to":"1a6ced46_57c1c052","updated":"2015-03-26 12:10:48.000000000","message":"Done","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"1c1a41df60f173ad1fa3fa5449aedcec41b2e150","unresolved":false,"context_lines":[{"line_number":733,"context_line":""},{"line_number":734,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":735,"context_line":"        - Assign a user a role on \u0027parent\u0027 and \u0027subproject\u0027;"},{"line_number":736,"context_line":"        - Check that calling parents_as_list on \u0027subproject\u0027 returns \u0027parent\u0027."},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"        \"\"\""},{"line_number":739,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_6f6c18d1","line":736,"updated":"2015-03-26 09:29:06.000000000","message":"s/returns/only returns/","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"91ff0174c7e2e654832b30fcfc816472ff54b534","unresolved":false,"context_lines":[{"line_number":733,"context_line":""},{"line_number":734,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":735,"context_line":"        - Assign a user a role on \u0027parent\u0027 and \u0027subproject\u0027;"},{"line_number":736,"context_line":"        - Check that calling parents_as_list on \u0027subproject\u0027 returns \u0027parent\u0027."},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"        \"\"\""},{"line_number":739,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_d2076c16","line":736,"in_reply_to":"1a6ced46_6f6c18d1","updated":"2015-03-26 12:10:48.000000000","message":"Done","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2deac8a6d7c0539967a9a67c1d80324ca2cc6bde","unresolved":false,"context_lines":[{"line_number":737,"context_line":""},{"line_number":738,"context_line":"        \"\"\""},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"        # Create the project hierarchy"},{"line_number":741,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":742,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":743,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_d7ccd08b","line":740,"updated":"2015-03-25 23:29:35.000000000","message":"why not using self._create_projects_hierarchy()?","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"91ff0174c7e2e654832b30fcfc816472ff54b534","unresolved":false,"context_lines":[{"line_number":737,"context_line":""},{"line_number":738,"context_line":"        \"\"\""},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"        # Create the project hierarchy"},{"line_number":741,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":742,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":743,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_8ff06f68","line":740,"in_reply_to":"1a6ced46_d7ccd08b","updated":"2015-03-26 12:10:48.000000000","message":"Explained above.","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2deac8a6d7c0539967a9a67c1d80324ca2cc6bde","unresolved":false,"context_lines":[{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        Test plan:"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":876,"context_line":"        - Assign a user a role on each on of those projects;"},{"line_number":877,"context_line":"        - Check that calling subtree_as_list on \u0027parent\u0027 returns both \u0027parent\u0027"},{"line_number":878,"context_line":"          and \u0027subproject\u0027."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_378a841b","line":875,"updated":"2015-03-25 23:29:35.000000000","message":"extra space after ,","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"91ff0174c7e2e654832b30fcfc816472ff54b534","unresolved":false,"context_lines":[{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        Test plan:"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":876,"context_line":"        - Assign a user a role on each on of those projects;"},{"line_number":877,"context_line":"        - Check that calling subtree_as_list on \u0027parent\u0027 returns both \u0027parent\u0027"},{"line_number":878,"context_line":"          and \u0027subproject\u0027."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_f20c683d","line":875,"in_reply_to":"1a6ced46_378a841b","updated":"2015-03-26 12:10:48.000000000","message":"Done","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2deac8a6d7c0539967a9a67c1d80324ca2cc6bde","unresolved":false,"context_lines":[{"line_number":879,"context_line":""},{"line_number":880,"context_line":"        \"\"\""},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"        # Create the project hierarchy"},{"line_number":883,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":884,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":885,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_d793f058","line":882,"updated":"2015-03-25 23:29:35.000000000","message":"why not using self._create_projects_hierarchy()?","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"91ff0174c7e2e654832b30fcfc816472ff54b534","unresolved":false,"context_lines":[{"line_number":879,"context_line":""},{"line_number":880,"context_line":"        \"\"\""},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"        # Create the project hierarchy"},{"line_number":883,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":884,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":885,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_1215843f","line":882,"in_reply_to":"1a6ced46_d793f058","updated":"2015-03-26 12:10:48.000000000","message":"Explained above.","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2deac8a6d7c0539967a9a67c1d80324ca2cc6bde","unresolved":false,"context_lines":[{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        Test plan:"},{"line_number":916,"context_line":""},{"line_number":917,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":918,"context_line":"        - Assign a user a role on \u0027parent\u0027 and \u0027subproject\u0027;"},{"line_number":919,"context_line":"        - Check that calling subtree_as_list on \u0027parent\u0027 returns \u0027subproject\u0027."},{"line_number":920,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_9785f808","line":917,"updated":"2015-03-25 23:29:35.000000000","message":"remove extra space after ,","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"91ff0174c7e2e654832b30fcfc816472ff54b534","unresolved":false,"context_lines":[{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        Test plan:"},{"line_number":916,"context_line":""},{"line_number":917,"context_line":"        - Create \u0027parent\u0027,  \u0027project\u0027 and \u0027subproject\u0027 projects;"},{"line_number":918,"context_line":"        - Assign a user a role on \u0027parent\u0027 and \u0027subproject\u0027;"},{"line_number":919,"context_line":"        - Check that calling subtree_as_list on \u0027parent\u0027 returns \u0027subproject\u0027."},{"line_number":920,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_32128057","line":917,"in_reply_to":"1a6ced46_9785f808","updated":"2015-03-26 12:10:48.000000000","message":"Done","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2deac8a6d7c0539967a9a67c1d80324ca2cc6bde","unresolved":false,"context_lines":[{"line_number":920,"context_line":""},{"line_number":921,"context_line":"        \"\"\""},{"line_number":922,"context_line":""},{"line_number":923,"context_line":"        # Create the project hierarchy"},{"line_number":924,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":925,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":926,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_578f002a","line":923,"updated":"2015-03-25 23:29:35.000000000","message":"why not using self._create_projects_hierarchy()?","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"91ff0174c7e2e654832b30fcfc816472ff54b534","unresolved":false,"context_lines":[{"line_number":920,"context_line":""},{"line_number":921,"context_line":"        \"\"\""},{"line_number":922,"context_line":""},{"line_number":923,"context_line":"        # Create the project hierarchy"},{"line_number":924,"context_line":"        parent \u003d self.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":925,"context_line":"        parent \u003d self.post(\u0027/projects\u0027, body\u003d{\u0027project\u0027: parent}).result"},{"line_number":926,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_92289487","line":923,"in_reply_to":"1a6ced46_578f002a","updated":"2015-03-26 12:10:48.000000000","message":"Explained above.","commit_id":"31b0fd6e207dd728110fe9d8e048d9ee38d73fc8"}]}
