)]}'
{"tempest/api/identity/v2/test_api_discovery.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bf46453a28c21542d5d3097c09dff726990ecc4f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":24,"context_line":"    @decorators.idempotent_id(\u0027ea889a68-a15f-4166-bfb1-c12456eae853\u0027)"},{"line_number":25,"context_line":"    def test_api_version_resources(self):"},{"line_number":26,"context_line":"        \"\"\"Test showing identity v2 api version resources\"\"\""},{"line_number":27,"context_line":"        descr \u003d self.non_admin_client.show_api_description()[\u0027version\u0027]"},{"line_number":28,"context_line":"        expected_resources \u003d (\u0027id\u0027, \u0027links\u0027, \u0027media-types\u0027, \u0027status\u0027,"},{"line_number":29,"context_line":"                              \u0027updated\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2192579f","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":60},"updated":"2020-05-13 23:52:24.000000000","message":"or \n\n\"\"\"Test verify the identity v2 api version API\"\"\"","commit_id":"0e5e8d345a1581fa0f457a9efe5e598292bcf879"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bf46453a28c21542d5d3097c09dff726990ecc4f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":24,"context_line":"    @decorators.idempotent_id(\u0027ea889a68-a15f-4166-bfb1-c12456eae853\u0027)"},{"line_number":25,"context_line":"    def test_api_version_resources(self):"},{"line_number":26,"context_line":"        \"\"\"Test showing identity v2 api version resources\"\"\""},{"line_number":27,"context_line":"        descr \u003d self.non_admin_client.show_api_description()[\u0027version\u0027]"},{"line_number":28,"context_line":"        expected_resources \u003d (\u0027id\u0027, \u0027links\u0027, \u0027media-types\u0027, \u0027status\u0027,"},{"line_number":29,"context_line":"                              \u0027updated\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_c1927b9f","line":26,"range":{"start_line":26,"start_character":16,"end_line":26,"end_character":23},"updated":"2020-05-13 23:52:24.000000000","message":"verify","commit_id":"0e5e8d345a1581fa0f457a9efe5e598292bcf879"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestApiDiscovery(base.BaseIdentityV2Test):"},{"line_number":21,"context_line":"    \"\"\"Tests for identity v2 API discovery features.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":24,"context_line":"    @decorators.idempotent_id(\u0027ea889a68-a15f-4166-bfb1-c12456eae853\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_7fd7a3ef","line":21,"range":{"start_line":21,"start_character":7,"end_line":21,"end_character":55},"updated":"2020-05-30 13:43:44.000000000","message":"Maybe adding \"Smoke\" in front of the description is good since these are all smoke tests (see decorators below).","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestApiDiscovery(base.BaseIdentityV2Test):"},{"line_number":21,"context_line":"    \"\"\"Tests for identity v2 API discovery features.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":24,"context_line":"    @decorators.idempotent_id(\u0027ea889a68-a15f-4166-bfb1-c12456eae853\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_e014aba2","line":21,"range":{"start_line":21,"start_character":7,"end_line":21,"end_character":55},"in_reply_to":"ff570b3c_7fd7a3ef","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":24,"context_line":"    @decorators.idempotent_id(\u0027ea889a68-a15f-4166-bfb1-c12456eae853\u0027)"},{"line_number":25,"context_line":"    def test_api_version_resources(self):"},{"line_number":26,"context_line":"        \"\"\"Test verify the identity v2 api version API\"\"\""},{"line_number":27,"context_line":"        descr \u003d self.non_admin_client.show_api_description()[\u0027version\u0027]"},{"line_number":28,"context_line":"        expected_resources \u003d (\u0027id\u0027, \u0027links\u0027, \u0027media-types\u0027, \u0027status\u0027,"},{"line_number":29,"context_line":"                              \u0027updated\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_3fd1abfc","line":26,"range":{"start_line":26,"start_character":11,"end_line":26,"end_character":54},"updated":"2020-05-30 13:43:44.000000000","message":"This description isn\u0027t clear and also \"api\" is repeated twice making it a little confusing. How about: \"Validate the response attributes returned by the v2 version API.\"","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":24,"context_line":"    @decorators.idempotent_id(\u0027ea889a68-a15f-4166-bfb1-c12456eae853\u0027)"},{"line_number":25,"context_line":"    def test_api_version_resources(self):"},{"line_number":26,"context_line":"        \"\"\"Test verify the identity v2 api version API\"\"\""},{"line_number":27,"context_line":"        descr \u003d self.non_admin_client.show_api_description()[\u0027version\u0027]"},{"line_number":28,"context_line":"        expected_resources \u003d (\u0027id\u0027, \u0027links\u0027, \u0027media-types\u0027, \u0027status\u0027,"},{"line_number":29,"context_line":"                              \u0027updated\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_c019a7d7","line":26,"range":{"start_line":26,"start_character":11,"end_line":26,"end_character":54},"in_reply_to":"ff570b3c_3fd1abfc","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"}],"tempest/api/identity/v2/test_extension.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f4edc60f9dc6e9d34ca1eca7417b6ecca7e6ea64","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ExtensionTestJSON(base.BaseIdentityV2Test):"},{"line_number":21,"context_line":"    \"\"\"Test extensions in identity v2\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    @decorators.idempotent_id(\u002785f3f661-f54c-4d48-b563-72ae952b9383\u0027)"},{"line_number":24,"context_line":"    def test_list_extensions(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_efcffc54","line":21,"range":{"start_line":21,"start_character":35,"end_line":21,"end_character":37},"updated":"2020-07-26 22:07:45.000000000","message":"v2 API\"\"\"","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8dec7c7587cf342385165e9e806dde68b41f2d8d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ExtensionTestJSON(base.BaseIdentityV2Test):"},{"line_number":21,"context_line":"    \"\"\"Test extensions in identity v2\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    @decorators.idempotent_id(\u002785f3f661-f54c-4d48-b563-72ae952b9383\u0027)"},{"line_number":24,"context_line":"    def test_list_extensions(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_a59ec504","line":21,"range":{"start_line":21,"start_character":35,"end_line":21,"end_character":37},"in_reply_to":"9f560f44_efcffc54","updated":"2020-07-27 05:39:26.000000000","message":"Done","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f4edc60f9dc6e9d34ca1eca7417b6ecca7e6ea64","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    @decorators.idempotent_id(\u002785f3f661-f54c-4d48-b563-72ae952b9383\u0027)"},{"line_number":24,"context_line":"    def test_list_extensions(self):"},{"line_number":25,"context_line":"        \"\"\"List all the identity v2 extensions\"\"\""},{"line_number":26,"context_line":"        body \u003d self.non_admin_client.list_extensions()[\u0027extensions\u0027][\u0027values\u0027]"},{"line_number":27,"context_line":"        self.assertNotEmpty(body)"},{"line_number":28,"context_line":"        keys \u003d [\u0027name\u0027, \u0027updated\u0027, \u0027alias\u0027, \u0027links\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_cfccb863","line":25,"range":{"start_line":25,"start_character":24,"end_line":25,"end_character":46},"updated":"2020-07-26 22:07:45.000000000","message":"identity extensions via v2 API\"\"\"","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8dec7c7587cf342385165e9e806dde68b41f2d8d","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    @decorators.idempotent_id(\u002785f3f661-f54c-4d48-b563-72ae952b9383\u0027)"},{"line_number":24,"context_line":"    def test_list_extensions(self):"},{"line_number":25,"context_line":"        \"\"\"List all the identity v2 extensions\"\"\""},{"line_number":26,"context_line":"        body \u003d self.non_admin_client.list_extensions()[\u0027extensions\u0027][\u0027values\u0027]"},{"line_number":27,"context_line":"        self.assertNotEmpty(body)"},{"line_number":28,"context_line":"        keys \u003d [\u0027name\u0027, \u0027updated\u0027, \u0027alias\u0027, \u0027links\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_85a3c14f","line":25,"range":{"start_line":25,"start_character":24,"end_line":25,"end_character":46},"in_reply_to":"9f560f44_cfccb863","updated":"2020-07-27 05:39:26.000000000","message":"Done","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"}],"tempest/api/identity/v2/test_tenants.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bf46453a28c21542d5d3097c09dff726990ecc4f","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @decorators.idempotent_id(\u0027ecae2459-243d-4ba1-ad02-65f15dc82b78\u0027)"},{"line_number":27,"context_line":"    def test_list_tenants_returns_only_authorized_tenants(self):"},{"line_number":28,"context_line":"        \"\"\"Test listing tenants only returns authorized tenants\"\"\""},{"line_number":29,"context_line":"        alt_tenant_name \u003d self.os_alt.credentials.tenant_name"},{"line_number":30,"context_line":"        resp \u003d self.non_admin_tenants_client.list_tenants()"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_e197bf8f","line":28,"range":{"start_line":28,"start_character":16,"end_line":28,"end_character":23},"updated":"2020-05-13 23:52:24.000000000","message":"\"\"\"Test verify list tenants only returns authorized tenants\"\"\"\n\n or if you can expand it little more detail like :\n\nhttps://review.opendev.org/#/c/721798/2/tempest/api/network/admin/test_floating_ips_admin_actions.py@60","commit_id":"0e5e8d345a1581fa0f457a9efe5e598292bcf879"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f4edc60f9dc6e9d34ca1eca7417b6ecca7e6ea64","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class IdentityTenantsTest(base.BaseIdentityV2Test):"},{"line_number":22,"context_line":"    \"\"\"Test listing tenants in identity v2\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_2fda9416","line":22,"range":{"start_line":22,"start_character":40,"end_line":22,"end_character":42},"updated":"2020-07-26 22:07:45.000000000","message":"v2 API\"\"\"","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8dec7c7587cf342385165e9e806dde68b41f2d8d","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class IdentityTenantsTest(base.BaseIdentityV2Test):"},{"line_number":22,"context_line":"    \"\"\"Test listing tenants in identity v2\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_c58499b4","line":22,"range":{"start_line":22,"start_character":40,"end_line":22,"end_character":42},"in_reply_to":"9f560f44_2fda9416","updated":"2020-07-27 05:39:26.000000000","message":"Done","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f4edc60f9dc6e9d34ca1eca7417b6ecca7e6ea64","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @decorators.idempotent_id(\u0027ecae2459-243d-4ba1-ad02-65f15dc82b78\u0027)"},{"line_number":27,"context_line":"    def test_list_tenants_returns_only_authorized_tenants(self):"},{"line_number":28,"context_line":"        \"\"\"Test verify list tenants only returns authorized tenants\"\"\""},{"line_number":29,"context_line":"        alt_tenant_name \u003d self.os_alt.credentials.tenant_name"},{"line_number":30,"context_line":"        resp \u003d self.non_admin_tenants_client.list_tenants()"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_0fd7d0ef","line":28,"range":{"start_line":28,"start_character":60,"end_line":28,"end_character":67},"updated":"2020-07-26 22:07:45.000000000","message":"...tenants via v2 API\"\"\"","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8dec7c7587cf342385165e9e806dde68b41f2d8d","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @decorators.idempotent_id(\u0027ecae2459-243d-4ba1-ad02-65f15dc82b78\u0027)"},{"line_number":27,"context_line":"    def test_list_tenants_returns_only_authorized_tenants(self):"},{"line_number":28,"context_line":"        \"\"\"Test verify list tenants only returns authorized tenants\"\"\""},{"line_number":29,"context_line":"        alt_tenant_name \u003d self.os_alt.credentials.tenant_name"},{"line_number":30,"context_line":"        resp \u003d self.non_admin_tenants_client.list_tenants()"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_65bdcd67","line":28,"range":{"start_line":28,"start_character":60,"end_line":28,"end_character":67},"in_reply_to":"9f560f44_0fd7d0ef","updated":"2020-07-27 05:39:26.000000000","message":"Done","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"}],"tempest/api/identity/v2/test_tokens.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f4edc60f9dc6e9d34ca1eca7417b6ecca7e6ea64","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class TokensTest(base.BaseIdentityV2Test):"},{"line_number":23,"context_line":"    \"\"\"Test tokens in identity v2\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @decorators.idempotent_id(\u002765ae3b78-91ff-467b-a705-f6678863b8ec\u0027)"},{"line_number":26,"context_line":"    def test_create_token(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_6f05ac7a","line":23,"range":{"start_line":23,"start_character":31,"end_line":23,"end_character":33},"updated":"2020-07-26 22:07:45.000000000","message":"v2 API\"\"\"","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8dec7c7587cf342385165e9e806dde68b41f2d8d","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class TokensTest(base.BaseIdentityV2Test):"},{"line_number":23,"context_line":"    \"\"\"Test tokens in identity v2\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @decorators.idempotent_id(\u002765ae3b78-91ff-467b-a705-f6678863b8ec\u0027)"},{"line_number":26,"context_line":"    def test_create_token(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_e5b0bd8e","line":23,"range":{"start_line":23,"start_character":31,"end_line":23,"end_character":33},"in_reply_to":"9f560f44_6f05ac7a","updated":"2020-07-27 05:39:26.000000000","message":"Done","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f4edc60f9dc6e9d34ca1eca7417b6ecca7e6ea64","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @decorators.idempotent_id(\u002765ae3b78-91ff-467b-a705-f6678863b8ec\u0027)"},{"line_number":26,"context_line":"    def test_create_token(self):"},{"line_number":27,"context_line":"        \"\"\"Test creating token for user\"\"\""},{"line_number":28,"context_line":"        token_client \u003d self.non_admin_token_client"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        # get a token for the user"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_4f0a688a","line":27,"range":{"start_line":27,"start_character":39,"end_line":27,"end_character":40},"updated":"2020-07-26 22:07:45.000000000","message":"via v2 API\"\"\"","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8dec7c7587cf342385165e9e806dde68b41f2d8d","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @decorators.idempotent_id(\u002765ae3b78-91ff-467b-a705-f6678863b8ec\u0027)"},{"line_number":26,"context_line":"    def test_create_token(self):"},{"line_number":27,"context_line":"        \"\"\"Test creating token for user\"\"\""},{"line_number":28,"context_line":"        token_client \u003d self.non_admin_token_client"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        # get a token for the user"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_85bc616a","line":27,"range":{"start_line":27,"start_character":39,"end_line":27,"end_character":40},"in_reply_to":"9f560f44_4f0a688a","updated":"2020-07-27 05:39:26.000000000","message":"Done","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"}],"tempest/api/identity/v2/test_users.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                      \u0027immutable user source and solely \u0027"},{"line_number":87,"context_line":"                      \u0027provides read-only access to users.\u0027)"},{"line_number":88,"context_line":"    def test_user_update_own_password(self):"},{"line_number":89,"context_line":"        \"\"\"test updating user\u0027s own password\"\"\""},{"line_number":90,"context_line":"        old_pass \u003d self.creds.password"},{"line_number":91,"context_line":"        old_token \u003d self.non_admin_users_client.token"},{"line_number":92,"context_line":"        new_pass \u003d data_utils.rand_password()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_5fd45fe9","line":89,"range":{"start_line":89,"start_character":11,"end_line":89,"end_character":15},"updated":"2020-05-30 13:43:44.000000000","message":"Should be upper-case","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                      \u0027immutable user source and solely \u0027"},{"line_number":87,"context_line":"                      \u0027provides read-only access to users.\u0027)"},{"line_number":88,"context_line":"    def test_user_update_own_password(self):"},{"line_number":89,"context_line":"        \"\"\"test updating user\u0027s own password\"\"\""},{"line_number":90,"context_line":"        old_pass \u003d self.creds.password"},{"line_number":91,"context_line":"        old_token \u003d self.non_admin_users_client.token"},{"line_number":92,"context_line":"        new_pass \u003d data_utils.rand_password()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_0010bfa7","line":89,"range":{"start_line":89,"start_character":11,"end_line":89,"end_character":15},"in_reply_to":"ff570b3c_5fd45fe9","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f4edc60f9dc6e9d34ca1eca7417b6ecca7e6ea64","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class IdentityUsersTest(base.BaseIdentityV2Test):"},{"line_number":31,"context_line":"    \"\"\"Test user password in identity v2\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_afffc465","line":31,"range":{"start_line":31,"start_character":38,"end_line":31,"end_character":40},"updated":"2020-07-26 22:07:45.000000000","message":"v2 API\"\"\"","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8dec7c7587cf342385165e9e806dde68b41f2d8d","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class IdentityUsersTest(base.BaseIdentityV2Test):"},{"line_number":31,"context_line":"    \"\"\"Test user password in identity v2\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_6562ed18","line":31,"range":{"start_line":31,"start_character":38,"end_line":31,"end_character":40},"in_reply_to":"9f560f44_afffc465","updated":"2020-07-27 05:39:26.000000000","message":"Done","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f4edc60f9dc6e9d34ca1eca7417b6ecca7e6ea64","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                      \u0027immutable user source and solely \u0027"},{"line_number":87,"context_line":"                      \u0027provides read-only access to users.\u0027)"},{"line_number":88,"context_line":"    def test_user_update_own_password(self):"},{"line_number":89,"context_line":"        \"\"\"Test updating user\u0027s own password\"\"\""},{"line_number":90,"context_line":"        old_pass \u003d self.creds.password"},{"line_number":91,"context_line":"        old_token \u003d self.non_admin_users_client.token"},{"line_number":92,"context_line":"        new_pass \u003d data_utils.rand_password()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_8f04807d","line":89,"range":{"start_line":89,"start_character":44,"end_line":89,"end_character":45},"updated":"2020-07-26 22:07:45.000000000","message":"via v2 API\"\"\"","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8dec7c7587cf342385165e9e806dde68b41f2d8d","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                      \u0027immutable user source and solely \u0027"},{"line_number":87,"context_line":"                      \u0027provides read-only access to users.\u0027)"},{"line_number":88,"context_line":"    def test_user_update_own_password(self):"},{"line_number":89,"context_line":"        \"\"\"Test updating user\u0027s own password\"\"\""},{"line_number":90,"context_line":"        old_pass \u003d self.creds.password"},{"line_number":91,"context_line":"        old_token \u003d self.non_admin_users_client.token"},{"line_number":92,"context_line":"        new_pass \u003d data_utils.rand_password()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_05a8511d","line":89,"range":{"start_line":89,"start_character":44,"end_line":89,"end_character":45},"in_reply_to":"9f560f44_8f04807d","updated":"2020-07-27 05:39:26.000000000","message":"Done","commit_id":"ca1ba2a4590d70605a28437ace94048271c41ef0"}],"tempest/api/identity/v3/test_api_discovery.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":37,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":38,"context_line":"    def test_list_api_versions(self):"},{"line_number":39,"context_line":"        \"\"\"Test listing identity api versions"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        NOTE: Actually this API doesn\u0027t depend on v3 API at all, because"},{"line_number":42,"context_line":"        the API operation is \"GET /\" without v3\u0027s endpoint. The reason of"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_9f0b978c","line":39,"range":{"start_line":39,"start_character":11,"end_line":39,"end_character":45},"updated":"2020-05-30 13:43:44.000000000","message":"This is also validating the attributes/properties for each API version.","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":37,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":38,"context_line":"    def test_list_api_versions(self):"},{"line_number":39,"context_line":"        \"\"\"Test listing identity api versions"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        NOTE: Actually this API doesn\u0027t depend on v3 API at all, because"},{"line_number":42,"context_line":"        the API operation is \"GET /\" without v3\u0027s endpoint. The reason of"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_e0794bfc","line":39,"range":{"start_line":39,"start_character":11,"end_line":39,"end_character":45},"in_reply_to":"ff570b3c_9f0b978c","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":66,"context_line":"    @decorators.idempotent_id(\u0027657c1970-4722-4189-8831-7325f3bc4265\u0027)"},{"line_number":67,"context_line":"    def test_api_media_types(self):"},{"line_number":68,"context_line":"        \"\"\"Test showing identity v3 api version media type\"\"\""},{"line_number":69,"context_line":"        descr \u003d self.non_admin_client.show_api_description()[\u0027version\u0027]"},{"line_number":70,"context_line":"        # Get MIME type bases and descriptions"},{"line_number":71,"context_line":"        media_types \u003d [(media_type[\u0027base\u0027], media_type[\u0027type\u0027]) for"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_1ff7878d","line":68,"range":{"start_line":68,"start_character":7,"end_line":68,"end_character":8},"updated":"2020-05-30 13:43:44.000000000","message":"This is really validating the supported media types. So maybe \"Test validating v3 supported media types in API description\" or something.","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":66,"context_line":"    @decorators.idempotent_id(\u0027657c1970-4722-4189-8831-7325f3bc4265\u0027)"},{"line_number":67,"context_line":"    def test_api_media_types(self):"},{"line_number":68,"context_line":"        \"\"\"Test showing identity v3 api version media type\"\"\""},{"line_number":69,"context_line":"        descr \u003d self.non_admin_client.show_api_description()[\u0027version\u0027]"},{"line_number":70,"context_line":"        # Get MIME type bases and descriptions"},{"line_number":71,"context_line":"        media_types \u003d [(media_type[\u0027base\u0027], media_type[\u0027type\u0027]) for"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_208063bf","line":68,"range":{"start_line":68,"start_character":7,"end_line":68,"end_character":8},"in_reply_to":"ff570b3c_1ff7878d","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":82,"context_line":"    @decorators.idempotent_id(\u00278879a470-abfb-47bb-bb8d-5a7fd279ad1e\u0027)"},{"line_number":83,"context_line":"    def test_api_version_statuses(self):"},{"line_number":84,"context_line":"        \"\"\"Test showing identity v3 api version status\"\"\""},{"line_number":85,"context_line":"        descr \u003d self.non_admin_client.show_api_description()[\u0027version\u0027]"},{"line_number":86,"context_line":"        status \u003d descr[\u0027status\u0027].lower()"},{"line_number":87,"context_line":"        supported_statuses \u003d [\u0027current\u0027, \u0027stable\u0027, \u0027experimental\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_3ffa4b74","line":84,"updated":"2020-05-30 13:43:44.000000000","message":"This is really validating that the statuses are valid, more than just checking whether \"showing\" them works.","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":82,"context_line":"    @decorators.idempotent_id(\u00278879a470-abfb-47bb-bb8d-5a7fd279ad1e\u0027)"},{"line_number":83,"context_line":"    def test_api_version_statuses(self):"},{"line_number":84,"context_line":"        \"\"\"Test showing identity v3 api version status\"\"\""},{"line_number":85,"context_line":"        descr \u003d self.non_admin_client.show_api_description()[\u0027version\u0027]"},{"line_number":86,"context_line":"        status \u003d descr[\u0027status\u0027].lower()"},{"line_number":87,"context_line":"        supported_statuses \u003d [\u0027current\u0027, \u0027stable\u0027, \u0027experimental\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_406ab719","line":84,"in_reply_to":"ff570b3c_3ffa4b74","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"}],"tempest/api/identity/v3/test_domains.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u002717a5de24-e6a0-4e4a-a9ee-d85b6e5612b5\u0027)"},{"line_number":38,"context_line":"    def test_default_domain_exists(self):"},{"line_number":39,"context_line":"        \"\"\"Test showing default domain\"\"\""},{"line_number":40,"context_line":"        domain \u003d self.domains_client.show_domain(self.domain_id)[\u0027domain\u0027]"},{"line_number":41,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_7ff04392","line":39,"updated":"2020-05-30 13:43:44.000000000","message":"Test that the default domain exists.","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u002717a5de24-e6a0-4e4a-a9ee-d85b6e5612b5\u0027)"},{"line_number":38,"context_line":"    def test_default_domain_exists(self):"},{"line_number":39,"context_line":"        \"\"\"Test showing default domain\"\"\""},{"line_number":40,"context_line":"        domain \u003d self.domains_client.show_domain(self.domain_id)[\u0027domain\u0027]"},{"line_number":41,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_80704f0a","line":39,"in_reply_to":"ff570b3c_7ff04392","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"}],"tempest/api/identity/v3/test_projects.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class IdentityV3ProjectsTest(base.BaseIdentityV3Test):"},{"line_number":22,"context_line":"    \"\"\"Test identity projects\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_bf2bfbe8","line":22,"updated":"2020-05-30 13:43:44.000000000","message":"Maybe adding v3 in front of identity is better to reflect that these are v3.","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class IdentityV3ProjectsTest(base.BaseIdentityV3Test):"},{"line_number":22,"context_line":"    \"\"\"Test identity projects\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_c067e74c","line":22,"in_reply_to":"ff570b3c_bf2bfbe8","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @decorators.idempotent_id(\u002786128d46-e170-4644-866a-cc487f699e1d\u0027)"},{"line_number":27,"context_line":"    def test_list_projects_returns_only_authorized_projects(self):"},{"line_number":28,"context_line":"        \"\"\"Test listing projects only returns authorized tenants\"\"\""},{"line_number":29,"context_line":"        alt_project_name \u003d self.os_alt.credentials.project_name"},{"line_number":30,"context_line":"        resp \u003d self.non_admin_users_client.list_user_projects("},{"line_number":31,"context_line":"            self.os_primary.credentials.user_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_5fed7fb5","line":28,"updated":"2020-05-30 13:43:44.000000000","message":"++ This is good","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c0af17732f10c3f6a35329c2b3018ac7e4dea310","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @decorators.idempotent_id(\u002786128d46-e170-4644-866a-cc487f699e1d\u0027)"},{"line_number":27,"context_line":"    def test_list_projects_returns_only_authorized_projects(self):"},{"line_number":28,"context_line":"        \"\"\"Test listing projects only returns authorized tenants\"\"\""},{"line_number":29,"context_line":"        alt_project_name \u003d self.os_alt.credentials.project_name"},{"line_number":30,"context_line":"        resp \u003d self.non_admin_users_client.list_user_projects("},{"line_number":31,"context_line":"            self.os_primary.credentials.user_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_8e844b60","line":28,"range":{"start_line":28,"start_character":57,"end_line":28,"end_character":64},"updated":"2020-07-29 13:53:59.000000000","message":"correct me if I\u0027m wrong, but \u0027tenant\u0027 is the older terminology, \u0027project\u0027 is the newer, so maybe it should be projects instead of tenants?","commit_id":"f6e771294b6ced84a978031d9206180c20462e1b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6829b99d97f4041eee20ee3868d1dc91832e2555","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @decorators.idempotent_id(\u002786128d46-e170-4644-866a-cc487f699e1d\u0027)"},{"line_number":27,"context_line":"    def test_list_projects_returns_only_authorized_projects(self):"},{"line_number":28,"context_line":"        \"\"\"Test listing projects only returns authorized tenants\"\"\""},{"line_number":29,"context_line":"        alt_project_name \u003d self.os_alt.credentials.project_name"},{"line_number":30,"context_line":"        resp \u003d self.non_admin_users_client.list_user_projects("},{"line_number":31,"context_line":"            self.os_primary.credentials.user_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_190ec33a","line":28,"range":{"start_line":28,"start_character":57,"end_line":28,"end_character":64},"in_reply_to":"9f560f44_8e844b60","updated":"2020-07-29 15:04:10.000000000","message":"yeah, as this is v3 API tests we should use \u0027project\u0027 as test name also include the same. For v2 API test, we can keep \u0027tenant\u0027 term.","commit_id":"f6e771294b6ced84a978031d9206180c20462e1b"}],"tempest/api/identity/v3/test_tokens.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @decorators.idempotent_id(\u00270f9f5a5f-d5cd-4a86-8a5b-c5ded151f212\u0027)"},{"line_number":113,"context_line":"    def test_token_auth_creation_existence_deletion(self):"},{"line_number":114,"context_line":"        \"\"\"Test auth/check existence/delete token for user\"\"\""},{"line_number":115,"context_line":"        # Tests basic token auth functionality in a way that is compatible with"},{"line_number":116,"context_line":"        # pre-provisioned credentials. The default user is used for token"},{"line_number":117,"context_line":"        # authentication."}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_9f30b758","line":114,"updated":"2020-05-30 13:43:44.000000000","message":"Maybe: \"Test life-cycle of token authentication for a given user.\" Of course, this assumes that \"life-cycle\" is clear to most people, more than the current description.","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @decorators.idempotent_id(\u00270f9f5a5f-d5cd-4a86-8a5b-c5ded151f212\u0027)"},{"line_number":113,"context_line":"    def test_token_auth_creation_existence_deletion(self):"},{"line_number":114,"context_line":"        \"\"\"Test auth/check existence/delete token for user\"\"\""},{"line_number":115,"context_line":"        # Tests basic token auth functionality in a way that is compatible with"},{"line_number":116,"context_line":"        # pre-provisioned credentials. The default user is used for token"},{"line_number":117,"context_line":"        # authentication."}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_6056db5e","line":114,"in_reply_to":"ff570b3c_9f30b758","updated":"2020-06-01 02:15:56.000000000","message":"Yes it\u0027s clearer, done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c0af17732f10c3f6a35329c2b3018ac7e4dea310","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    @decorators.idempotent_id(\u00270f9f5a5f-d5cd-4a86-8a5b-c5ded151f212\u0027)"},{"line_number":113,"context_line":"    def test_token_auth_creation_existence_deletion(self):"},{"line_number":114,"context_line":"        \"\"\"Test auth/check existence/delete token for user\"\"\""},{"line_number":115,"context_line":"        # Tests basic token auth functionality in a way that is compatible with"},{"line_number":116,"context_line":"        # pre-provisioned credentials. The default user is used for token"},{"line_number":117,"context_line":"        # authentication."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        # Valid user\u0027s token is authenticated"},{"line_number":120,"context_line":"        user \u003d self.os_primary.credentials"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_4e64f3e4","line":117,"range":{"start_line":115,"start_character":8,"end_line":117,"end_character":25},"updated":"2020-07-29 13:53:59.000000000","message":"maybe this could be converted to doc string as well","commit_id":"f6e771294b6ced84a978031d9206180c20462e1b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6829b99d97f4041eee20ee3868d1dc91832e2555","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    @decorators.idempotent_id(\u00270f9f5a5f-d5cd-4a86-8a5b-c5ded151f212\u0027)"},{"line_number":113,"context_line":"    def test_token_auth_creation_existence_deletion(self):"},{"line_number":114,"context_line":"        \"\"\"Test auth/check existence/delete token for user\"\"\""},{"line_number":115,"context_line":"        # Tests basic token auth functionality in a way that is compatible with"},{"line_number":116,"context_line":"        # pre-provisioned credentials. The default user is used for token"},{"line_number":117,"context_line":"        # authentication."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        # Valid user\u0027s token is authenticated"},{"line_number":120,"context_line":"        user \u003d self.os_primary.credentials"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_f9082f2e","line":117,"range":{"start_line":115,"start_character":8,"end_line":117,"end_character":25},"in_reply_to":"9f560f44_4e64f3e4","updated":"2020-07-29 15:04:10.000000000","message":"+1","commit_id":"f6e771294b6ced84a978031d9206180c20462e1b"}],"tempest/api/identity/v3/test_users.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class IdentityV3UsersTest(base.BaseIdentityV3Test):"},{"line_number":31,"context_line":"    \"\"\"Test identity user password\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_ff31f35a","line":31,"updated":"2020-05-30 13:43:44.000000000","message":"v3","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class IdentityV3UsersTest(base.BaseIdentityV3Test):"},{"line_number":31,"context_line":"    \"\"\"Test identity user password\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_4053d76b","line":31,"in_reply_to":"ff570b3c_ff31f35a","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                      \u0027immutable user source and solely \u0027"},{"line_number":114,"context_line":"                      \u0027provides read-only access to users.\u0027)"},{"line_number":115,"context_line":"    def test_password_history_check_self_service_api(self):"},{"line_number":116,"context_line":"        \"\"\"Test checking password changing history\"\"\""},{"line_number":117,"context_line":"        old_pass \u003d self.creds.password"},{"line_number":118,"context_line":"        new_pass1 \u003d data_utils.rand_password()"},{"line_number":119,"context_line":"        new_pass2 \u003d data_utils.rand_password()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_df36af51","line":116,"updated":"2020-05-30 13:43:44.000000000","message":"This is really just a rewording of the Python description. Maybe: \"Test validating unique password can be successfully updated.\"","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60c2ff2f83490a2ca357114926d8887a570cc7f2","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                      \u0027immutable user source and solely \u0027"},{"line_number":114,"context_line":"                      \u0027provides read-only access to users.\u0027)"},{"line_number":115,"context_line":"    def test_password_history_check_self_service_api(self):"},{"line_number":116,"context_line":"        \"\"\"Test checking password changing history\"\"\""},{"line_number":117,"context_line":"        old_pass \u003d self.creds.password"},{"line_number":118,"context_line":"        new_pass1 \u003d data_utils.rand_password()"},{"line_number":119,"context_line":"        new_pass2 \u003d data_utils.rand_password()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_a04c73c8","line":116,"in_reply_to":"ff570b3c_df36af51","updated":"2020-06-01 02:15:56.000000000","message":"Done","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"189ad7dd8040e2af7b5ba60d04c5b7e06f8112d4","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                          \u0027Security compliance not available.\u0027)"},{"line_number":145,"context_line":"    @decorators.idempotent_id(\u0027a7ad8bbf-2cff-4520-8c1d-96332e151658\u0027)"},{"line_number":146,"context_line":"    def test_user_account_lockout(self):"},{"line_number":147,"context_line":"        \"\"\"Test locking out user account after failure attempts\"\"\""},{"line_number":148,"context_line":"        if (CONF.identity.user_lockout_failure_attempts \u003c\u003d 0 or"},{"line_number":149,"context_line":"                CONF.identity.user_lockout_duration \u003c\u003d 0):"},{"line_number":150,"context_line":"            raise self.skipException("}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_3f3feb25","line":147,"updated":"2020-05-30 13:43:44.000000000","message":"++","commit_id":"7a45f61d280f0d9ed58355b4cd5e250bef40032d"}]}
