)]}'
{"tempest/api/identity/admin/v3/test_projects.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"120da567756357a24e0fa82d4cf56c9b9ffd5d78","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        self.assertEqual(u_email, new_user_get[\u0027email\u0027])"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    @test.idempotent_id(\u00278908f715-051c-49f6-9683-ea6c719f3049\u0027)"},{"line_number":181,"context_line":"    def test_enable_project_subtree(self):"},{"line_number":182,"context_line":"        # Create two project, one of them is parent"},{"line_number":183,"context_line":"        # make parent enable\u003dtrue and check another one is enabled"},{"line_number":184,"context_line":"        def api_num(s):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_ef0f5986","line":181,"updated":"2016-01-21 11:25:07.000000000","message":"Add some white empty lines in that test. The code is not so readable now.","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"3252bf77582827404de4f9482728352a19d0032f","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        self.assertEqual(u_email, new_user_get[\u0027email\u0027])"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    @test.idempotent_id(\u00278908f715-051c-49f6-9683-ea6c719f3049\u0027)"},{"line_number":181,"context_line":"    def test_enable_project_subtree(self):"},{"line_number":182,"context_line":"        # Create two project, one of them is parent"},{"line_number":183,"context_line":"        # make parent enable\u003dtrue and check another one is enabled"},{"line_number":184,"context_line":"        def api_num(s):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_24ea7010","line":181,"in_reply_to":"9a68dd71_ef0f5986","updated":"2016-01-26 12:55:02.000000000","message":"Done","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":7227,"name":"Timur Nurlygayanov","email":"tnurlygayanov@mirantis.com","username":"tnurlygayanov"},"change_message_id":"dd6f5cdd5d9fb2dbb843a70ea46a40d6c54985be","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        def api_num(s):"},{"line_number":185,"context_line":"            \"\"\"Supposing that version is in this format as v3.4.\"\"\""},{"line_number":186,"context_line":"            return sum([int(r[1]) * 100 ** (r[0] + 1)"},{"line_number":187,"context_line":"                       for r in enumerate(s[::-1].split(\u0027.\u0027))])"},{"line_number":188,"context_line":"        # get API version."},{"line_number":189,"context_line":"        # The test is available for API version v3.6 and higher."},{"line_number":190,"context_line":"        desc \u003d self.client.show_api_description()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_085f4842","line":187,"range":{"start_line":187,"start_character":26,"end_line":187,"end_character":27},"updated":"2016-01-21 10:48:11.000000000","message":"How it will work for versions\n\n3.1.7 and 3.2.3, for example?","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"3252bf77582827404de4f9482728352a19d0032f","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        def api_num(s):"},{"line_number":185,"context_line":"            \"\"\"Supposing that version is in this format as v3.4.\"\"\""},{"line_number":186,"context_line":"            return sum([int(r[1]) * 100 ** (r[0] + 1)"},{"line_number":187,"context_line":"                       for r in enumerate(s[::-1].split(\u0027.\u0027))])"},{"line_number":188,"context_line":"        # get API version."},{"line_number":189,"context_line":"        # The test is available for API version v3.6 and higher."},{"line_number":190,"context_line":"        desc \u003d self.client.show_api_description()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_cf829500","line":187,"range":{"start_line":187,"start_character":26,"end_line":187,"end_character":27},"in_reply_to":"9a68dd71_085f4842","updated":"2016-01-26 12:55:02.000000000","message":"Hi, Timur. It will work. Here is an example:\nhttp://paste.openstack.org/show/484543/","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"120da567756357a24e0fa82d4cf56c9b9ffd5d78","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        desc \u003d self.client.show_api_description()"},{"line_number":191,"context_line":"        version \u003d desc[\u0027version\u0027][\u0027id\u0027][1:]"},{"line_number":192,"context_line":"        if api_num(version) \u003c api_num(\u00273.6\u0027):"},{"line_number":193,"context_line":"            return"},{"line_number":194,"context_line":"        # create project #1"},{"line_number":195,"context_line":"        p1_name \u003d data_utils.rand_name(\u0027project1\u0027)"},{"line_number":196,"context_line":"        project1 \u003d self.client.create_project(p1_name)[\u0027project\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_af08812e","line":193,"updated":"2016-01-21 11:25:07.000000000","message":"What do you mean \"return\" ? Shouldn\u0027t this be a SkipException ?","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"3252bf77582827404de4f9482728352a19d0032f","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        desc \u003d self.client.show_api_description()"},{"line_number":191,"context_line":"        version \u003d desc[\u0027version\u0027][\u0027id\u0027][1:]"},{"line_number":192,"context_line":"        if api_num(version) \u003c api_num(\u00273.6\u0027):"},{"line_number":193,"context_line":"            return"},{"line_number":194,"context_line":"        # create project #1"},{"line_number":195,"context_line":"        p1_name \u003d data_utils.rand_name(\u0027project1\u0027)"},{"line_number":196,"context_line":"        project1 \u003d self.client.create_project(p1_name)[\u0027project\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_c4f594cb","line":193,"in_reply_to":"9a68dd71_af08812e","updated":"2016-01-26 12:55:02.000000000","message":"Done","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"120da567756357a24e0fa82d4cf56c9b9ffd5d78","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        self.client.enable_project_subtree(project1_id, False)"},{"line_number":207,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":208,"context_line":"        p2 \u003d self.client.get_project(project2[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":209,"context_line":"        self.assertEqual(p1[\u0027enabled\u0027], False)"},{"line_number":210,"context_line":"        self.assertEqual(p2[\u0027enabled\u0027], False)"},{"line_number":211,"context_line":"        # setting p1.enabled\u003dTrue also changes p2.enabled"},{"line_number":212,"context_line":"        self.client.enable_project_subtree(project1_id, True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_6f7da9b0","line":209,"updated":"2016-01-21 11:25:07.000000000","message":"This should be \"self.assertEqual(False, p1[\u0027enabled\u0027])\n\nThe generic recommended form is \"assertEqual(expected, actual)\"","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"3252bf77582827404de4f9482728352a19d0032f","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        self.client.enable_project_subtree(project1_id, False)"},{"line_number":207,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":208,"context_line":"        p2 \u003d self.client.get_project(project2[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":209,"context_line":"        self.assertEqual(p1[\u0027enabled\u0027], False)"},{"line_number":210,"context_line":"        self.assertEqual(p2[\u0027enabled\u0027], False)"},{"line_number":211,"context_line":"        # setting p1.enabled\u003dTrue also changes p2.enabled"},{"line_number":212,"context_line":"        self.client.enable_project_subtree(project1_id, True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_a497408f","line":209,"in_reply_to":"9a68dd71_6f7da9b0","updated":"2016-01-26 12:55:02.000000000","message":"Done","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"120da567756357a24e0fa82d4cf56c9b9ffd5d78","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":208,"context_line":"        p2 \u003d self.client.get_project(project2[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":209,"context_line":"        self.assertEqual(p1[\u0027enabled\u0027], False)"},{"line_number":210,"context_line":"        self.assertEqual(p2[\u0027enabled\u0027], False)"},{"line_number":211,"context_line":"        # setting p1.enabled\u003dTrue also changes p2.enabled"},{"line_number":212,"context_line":"        self.client.enable_project_subtree(project1_id, True)"},{"line_number":213,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_ef475975","line":210,"updated":"2016-01-21 11:25:07.000000000","message":"same","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"3252bf77582827404de4f9482728352a19d0032f","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":208,"context_line":"        p2 \u003d self.client.get_project(project2[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":209,"context_line":"        self.assertEqual(p1[\u0027enabled\u0027], False)"},{"line_number":210,"context_line":"        self.assertEqual(p2[\u0027enabled\u0027], False)"},{"line_number":211,"context_line":"        # setting p1.enabled\u003dTrue also changes p2.enabled"},{"line_number":212,"context_line":"        self.client.enable_project_subtree(project1_id, True)"},{"line_number":213,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_04808c45","line":210,"in_reply_to":"9a68dd71_ef475975","updated":"2016-01-26 12:55:02.000000000","message":"Done","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"120da567756357a24e0fa82d4cf56c9b9ffd5d78","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.client.enable_project_subtree(project1_id, True)"},{"line_number":213,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":214,"context_line":"        p2 \u003d self.client.get_project(project2[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":215,"context_line":"        self.assertEqual(p1[\u0027enabled\u0027], True)"},{"line_number":216,"context_line":"        self.assertEqual(p2[\u0027enabled\u0027], True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_af5ac14e","line":215,"updated":"2016-01-21 11:25:07.000000000","message":"same","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"3252bf77582827404de4f9482728352a19d0032f","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.client.enable_project_subtree(project1_id, True)"},{"line_number":213,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":214,"context_line":"        p2 \u003d self.client.get_project(project2[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":215,"context_line":"        self.assertEqual(p1[\u0027enabled\u0027], True)"},{"line_number":216,"context_line":"        self.assertEqual(p2[\u0027enabled\u0027], True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_e47c5874","line":215,"in_reply_to":"9a68dd71_af5ac14e","updated":"2016-01-26 12:55:02.000000000","message":"Done","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"120da567756357a24e0fa82d4cf56c9b9ffd5d78","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":214,"context_line":"        p2 \u003d self.client.get_project(project2[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":215,"context_line":"        self.assertEqual(p1[\u0027enabled\u0027], True)"},{"line_number":216,"context_line":"        self.assertEqual(p2[\u0027enabled\u0027], True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_6f54c920","line":216,"updated":"2016-01-21 11:25:07.000000000","message":"same","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"3252bf77582827404de4f9482728352a19d0032f","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        p1 \u003d self.client.get_project(project1[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":214,"context_line":"        p2 \u003d self.client.get_project(project2[\u0027id\u0027])[\u0027project\u0027]"},{"line_number":215,"context_line":"        self.assertEqual(p1[\u0027enabled\u0027], True)"},{"line_number":216,"context_line":"        self.assertEqual(p2[\u0027enabled\u0027], True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_44868466","line":216,"in_reply_to":"9a68dd71_6f54c920","updated":"2016-01-26 12:55:02.000000000","message":"Done","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a39fb6f1bca19e0f38639b3ae54320c8d8a15c7e","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    @test.idempotent_id(\u00278908f715-051c-49f6-9683-ea6c719f3049\u0027)"},{"line_number":181,"context_line":"    def test_enable_project_subtree(self):"},{"line_number":182,"context_line":"        # Create two project, one of them is parent"},{"line_number":183,"context_line":"        # make parent enable\u003dtrue and check another one is enabled"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        # get API version."}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_a31f6d5a","line":182,"updated":"2016-01-27 13:27:55.000000000","message":"s/project/projects/","commit_id":"89e2e112d8feaeebaac672f6bb672ed5f52bfff3"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"45370f7c795dc216d6f891d58d54976da39817ce","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    @test.idempotent_id(\u00278908f715-051c-49f6-9683-ea6c719f3049\u0027)"},{"line_number":181,"context_line":"    def test_enable_project_subtree(self):"},{"line_number":182,"context_line":"        # Create two project, one of them is parent"},{"line_number":183,"context_line":"        # make parent enable\u003dtrue and check another one is enabled"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        # get API version."}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_24660aee","line":182,"in_reply_to":"7a5de9d1_a31f6d5a","updated":"2016-01-27 21:30:25.000000000","message":"Done","commit_id":"89e2e112d8feaeebaac672f6bb672ed5f52bfff3"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a39fb6f1bca19e0f38639b3ae54320c8d8a15c7e","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        # get API version."},{"line_number":186,"context_line":"        desc \u003d self.client.show_api_description()"},{"line_number":187,"context_line":"        version \u003d desc[\u0027version\u0027][\u0027id\u0027][1:]"},{"line_number":188,"context_line":"        v \u003d version.split(\u0027.\u0027)"},{"line_number":189,"context_line":"        # The test is available for API version v3.6 and higher."},{"line_number":190,"context_line":"        # keep in mind that 306 is v3.6, not 36 because it is possible"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_e186bd12","line":187,"updated":"2016-01-27 13:27:55.000000000","message":"So I had to browse the Keystone code to understand why you would strip the first character here. It wasn\u0027t obvious to me. \nI suggest you do it like this:\nversion \u003d desc[\u0027version\u0027][\u0027id\u0027].lstrip(\u0027v\u0027)\n\nThis way it\u0027s super clear that you strip the leading \u0027v\u0027 char.","commit_id":"89e2e112d8feaeebaac672f6bb672ed5f52bfff3"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"45370f7c795dc216d6f891d58d54976da39817ce","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        # get API version."},{"line_number":186,"context_line":"        desc \u003d self.client.show_api_description()"},{"line_number":187,"context_line":"        version \u003d desc[\u0027version\u0027][\u0027id\u0027][1:]"},{"line_number":188,"context_line":"        v \u003d version.split(\u0027.\u0027)"},{"line_number":189,"context_line":"        # The test is available for API version v3.6 and higher."},{"line_number":190,"context_line":"        # keep in mind that 306 is v3.6, not 36 because it is possible"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_c46296d8","line":187,"in_reply_to":"7a5de9d1_e186bd12","updated":"2016-01-27 21:30:25.000000000","message":"Done","commit_id":"89e2e112d8feaeebaac672f6bb672ed5f52bfff3"}],"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":"120da567756357a24e0fa82d4cf56c9b9ffd5d78","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        return service_client.ResponseBody(resp, body)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def enable_project_subtree(self, project_id, en):"},{"line_number":184,"context_line":"        \"Enable-disable project subtree.\""},{"line_number":185,"context_line":"        post_body \u003d {"},{"line_number":186,"context_line":"            \u0027enabled\u0027: en"},{"line_number":187,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_4fc5453a","line":184,"updated":"2016-01-21 11:25:07.000000000","message":"This should be \"\"\"Enable-disable project subtree.\"\"\"","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"3252bf77582827404de4f9482728352a19d0032f","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        return service_client.ResponseBody(resp, body)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def enable_project_subtree(self, project_id, en):"},{"line_number":184,"context_line":"        \"Enable-disable project subtree.\""},{"line_number":185,"context_line":"        post_body \u003d {"},{"line_number":186,"context_line":"            \u0027enabled\u0027: en"},{"line_number":187,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_e9443175","line":184,"in_reply_to":"9a68dd71_4fc5453a","updated":"2016-01-26 12:55:02.000000000","message":"Done","commit_id":"dfa818942adb2f3a3e0af7855bff5e7742ab9e4a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e5c11573b5cd2ec8ccdb2fa0e0c45d77bf513f9a","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":181,"context_line":"        return service_client.ResponseBody(resp, body)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def enable_project_subtree(self, project_id, en):"},{"line_number":184,"context_line":"        \"\"\"Enable-disable project subtree.\"\"\""},{"line_number":185,"context_line":"        post_body \u003d {"},{"line_number":186,"context_line":"            \u0027enabled\u0027: en"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_d19193f2","line":183,"updated":"2016-01-29 15:15:22.000000000","message":"How is this method different than just calling update_project (see L151) with just \"enabled\u003dTrue\" or \"enabled\u003dFalse\" ?","commit_id":"addfd3a94427c99609098aa4d35d1411e7d022ff"},{"author":{"_account_id":18796,"name":"Alex Petrov","email":"apetrov@mirantis.com","username":"apetrov"},"change_message_id":"c10837cad89e50ebf5bd17906bb8ff3c89994edb","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":181,"context_line":"        return service_client.ResponseBody(resp, body)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def enable_project_subtree(self, project_id, en):"},{"line_number":184,"context_line":"        \"\"\"Enable-disable project subtree.\"\"\""},{"line_number":185,"context_line":"        post_body \u003d {"},{"line_number":186,"context_line":"            \u0027enabled\u0027: en"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_8d2142b7","line":183,"in_reply_to":"7a5de9d1_d19193f2","updated":"2016-02-02 11:56:20.000000000","message":"It is my mistake. \nThis method PATCH /projects/{project_id}/cascade will be just implemented in keystone version v3.6! \nAs for today, the keystone stable version is v3.5 and this method doesn\u0027t exist.\nhttps://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#authentication-specific-routes\n\nSo I need your advice. \n\n1) I can freeze this test in its current state until version v3.6 is released\n2) or it could be merged with the restriction set_min_version(\u0027v3.6\u0027) \n3) ?\nwhat do you think?","commit_id":"addfd3a94427c99609098aa4d35d1411e7d022ff"}]}
