)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5147b26dddb0e7e901747a693d4924d66824b292","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"e118ece8_8d11e396","updated":"2025-11-12 12:22:03.000000000","message":"I think you\u0027ve misunderstood what is required here. As noted here, barbicanclient does not currently appear to have any functional tests and adding the framework to allow that would not be trivial. I would suggest you abandon this effort and talk to your mentor regarding finding a new patch to work on.","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"261fa22f4141ccd2d47d2790ca2ebd9a50b6c292","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"8edadcd4_b6d6fbf6","updated":"2026-05-19 14:45:26.000000000","message":"This patch was originally developed as part of the 2025 Korea Contribution Mentoring Program.\n\nSince there have been no updates for several months after the patch was proposed, a mentee from the 2026 program will continue working on it. (from may 2026)","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":39066,"name":"이나현","display_name":"nhlee","email":"lily.nahyunlee@gmail.com","username":"nhlee"},"change_message_id":"056b9928f7ebe4aa23c9263a761583d89a579d05","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"d7c75d42_acf14e9a","in_reply_to":"e118ece8_8d11e396","updated":"2026-06-03 13:31:56.000000000","message":"Thanks for the guidance. I checked the current tree again and found that python-barbicanclient already has existing tests under functionaltests, a tox functional environment, and a python-barbicanclient-tox-functional Zuul job.\n\nThis patch is adding coverage to the existing client functional test suite rather than introducing a new functional test framework from scratch. I also cleaned up the inline issues in the new test file.","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":39066,"name":"이나현","display_name":"nhlee","email":"lily.nahyunlee@gmail.com","username":"nhlee"},"change_message_id":"056b9928f7ebe4aa23c9263a761583d89a579d05","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"bd4b3ec8_f844dd79","updated":"2026-06-03 13:31:56.000000000","message":"Uploaded a new patch set addressing the review comments.\n\nI removed the copied copyright header, deleted the unused helper/comment, updated the super() calls, and clarified that this test is added under the existing functional test structure. tox -e pep8 passes locally.","commit_id":"cfdc253ff3c7cda424a090dd116c7a78bb63236c"}],"functionaltests/client/v1/functional/test_quota.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5147b26dddb0e7e901747a693d4924d66824b292","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7531bb48_4bbe7fd4","updated":"2025-11-12 12:22:03.000000000","message":"This is being created in a `functionaltests` directory, but that doesn\u0027t exist? And I don\u0027t believe barbicanclient has *any* functional tests currently.\n\nYou could add functional tests, and I\u0027m sure they would be welcomed, but there is a lot more bootstrapping needed beforehand (including defining new Zuul jobs). I would suggest looking at how other `python-*client` projects do their functional tests, if any do.","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":39066,"name":"이나현","display_name":"nhlee","email":"lily.nahyunlee@gmail.com","username":"nhlee"},"change_message_id":"056b9928f7ebe4aa23c9263a761583d89a579d05","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"5e3dcc36_10e43eb1","in_reply_to":"7531bb48_4bbe7fd4","updated":"2026-06-03 13:31:56.000000000","message":"I checked the current tree and functionaltests already exists with existing client and CLI functional tests. tox.ini also has a functional environment, and .zuul.yaml defines python-barbicanclient-tox-functional. I updated the patch as an addition to the existing client functional test suite.","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5147b26dddb0e7e901747a693d4924d66824b292","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 Rackspace, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":11,"id":"d951e3f7_f75d3fa5","line":1,"updated":"2025-11-12 12:22:03.000000000","message":"Unless you invented a time machine and got a new job, this is presumably wrong 😉","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":39066,"name":"이나현","display_name":"nhlee","email":"lily.nahyunlee@gmail.com","username":"nhlee"},"change_message_id":"056b9928f7ebe4aa23c9263a761583d89a579d05","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 Rackspace, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":11,"id":"8609174d_f7121015","line":1,"in_reply_to":"d951e3f7_f75d3fa5","updated":"2026-06-03 13:31:56.000000000","message":"Removed the copied copyright header and kept the Apache license header only.","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5147b26dddb0e7e901747a693d4924d66824b292","unresolved":true,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from functionaltests.client import base"},{"line_number":17,"context_line":"# F401: Removed unused \u0027testtools.testcase\u0027 import"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def _quota_url(project_id):"}],"source_content_type":"text/x-python","patch_set":11,"id":"458bab84_48f09365","line":17,"updated":"2025-11-12 12:22:03.000000000","message":"I\u0027m not sure why this is here. Can you remove it.","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":39066,"name":"이나현","display_name":"nhlee","email":"lily.nahyunlee@gmail.com","username":"nhlee"},"change_message_id":"056b9928f7ebe4aa23c9263a761583d89a579d05","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from functionaltests.client import base"},{"line_number":17,"context_line":"# F401: Removed unused \u0027testtools.testcase\u0027 import"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def _quota_url(project_id):"}],"source_content_type":"text/x-python","patch_set":11,"id":"f2bd74ba_0decf7d9","line":17,"in_reply_to":"458bab84_48f09365","updated":"2026-06-03 13:31:56.000000000","message":"Removed the stray F401 comment.","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5147b26dddb0e7e901747a693d4924d66824b292","unresolved":true,"context_lines":[{"line_number":17,"context_line":"# F401: Removed unused \u0027testtools.testcase\u0027 import"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def _quota_url(project_id):"},{"line_number":21,"context_line":"    \"\"\"Build the project-quotas endpoint URL for the given project\"\"\""},{"line_number":22,"context_line":"    return f\"/v1/project-quotas/{project_id}\""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa9bf76_2db989d5","line":20,"updated":"2025-11-12 12:22:03.000000000","message":"This doesn\u0027t appear to be used?","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":39066,"name":"이나현","display_name":"nhlee","email":"lily.nahyunlee@gmail.com","username":"nhlee"},"change_message_id":"056b9928f7ebe4aa23c9263a761583d89a579d05","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# F401: Removed unused \u0027testtools.testcase\u0027 import"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def _quota_url(project_id):"},{"line_number":21,"context_line":"    \"\"\"Build the project-quotas endpoint URL for the given project\"\"\""},{"line_number":22,"context_line":"    return f\"/v1/project-quotas/{project_id}\""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"0c43fca8_4e255b6b","line":20,"in_reply_to":"3fa9bf76_2db989d5","updated":"2026-06-03 13:31:56.000000000","message":"Removed the unused _quota_url helper.","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5147b26dddb0e7e901747a693d4924d66824b292","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    \"\"\"Functional tests for Barbican Project Quotas API.\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        super(ProjectQuotaTestCase, self).setUp()"},{"line_number":30,"context_line":"        self.project_id \u003d self.client.project_id"},{"line_number":31,"context_line":"        self.test_quotas \u003d {"},{"line_number":32,"context_line":"            \u0027secrets\u0027: 150,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9becfc08_222fc049","line":29,"updated":"2025-11-12 12:22:03.000000000","message":"nit: not needed in Python 3.\n\n```suggestion\n        super().setUp()\n```","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":39066,"name":"이나현","display_name":"nhlee","email":"lily.nahyunlee@gmail.com","username":"nhlee"},"change_message_id":"056b9928f7ebe4aa23c9263a761583d89a579d05","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \"\"\"Functional tests for Barbican Project Quotas API.\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        super(ProjectQuotaTestCase, self).setUp()"},{"line_number":30,"context_line":"        self.project_id \u003d self.client.project_id"},{"line_number":31,"context_line":"        self.test_quotas \u003d {"},{"line_number":32,"context_line":"            \u0027secrets\u0027: 150,"}],"source_content_type":"text/x-python","patch_set":11,"id":"569c9fab_9f12140c","line":29,"in_reply_to":"9becfc08_222fc049","updated":"2026-06-03 13:31:56.000000000","message":"Updated this to use Python 3 style super().setUp().","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5147b26dddb0e7e901747a693d4924d66824b292","unresolved":true,"context_lines":[{"line_number":43,"context_line":"        except Exception:"},{"line_number":44,"context_line":"            # Suppress exceptions during test cleanup."},{"line_number":45,"context_line":"            pass"},{"line_number":46,"context_line":"        super(ProjectQuotaTestCase, self).tearDown()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_set_get_delete_project_quotas_flow(self):"},{"line_number":49,"context_line":"        \"\"\"Test the full lifecycle SET, GET, DELETE of project quotas.\"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"c4f9aab0_2671f8dd","line":46,"updated":"2025-11-12 12:22:03.000000000","message":"nit:\n\n```suggestion\n        super().tearDown()\n```","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"},{"author":{"_account_id":39066,"name":"이나현","display_name":"nhlee","email":"lily.nahyunlee@gmail.com","username":"nhlee"},"change_message_id":"056b9928f7ebe4aa23c9263a761583d89a579d05","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        except Exception:"},{"line_number":44,"context_line":"            # Suppress exceptions during test cleanup."},{"line_number":45,"context_line":"            pass"},{"line_number":46,"context_line":"        super(ProjectQuotaTestCase, self).tearDown()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_set_get_delete_project_quotas_flow(self):"},{"line_number":49,"context_line":"        \"\"\"Test the full lifecycle SET, GET, DELETE of project quotas.\"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"5206a7fc_f4caedb3","line":46,"in_reply_to":"c4f9aab0_2671f8dd","updated":"2026-06-03 13:31:56.000000000","message":"Updated this to use Python 3 style super().tearDown().","commit_id":"033eec387028c5f380a2fc8fe78a3e1d47f0971e"}]}
