)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f33671e8afee7ff187c026684f06f0c85b025131","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"dda6a934_af5bbf3c","updated":"2026-04-06 13:37:18.000000000","message":"**pep8 job passing:** https://zuul.opendev.org/t/openstack/build/f51689bfef8443a0ba2c039f86f1d319","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}],"openstack/fields.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        else:"},{"line_number":106,"context_line":"            return [value]"},{"line_number":107,"context_line":"    elif isinstance(value, data_type):"},{"line_number":108,"context_line":"        return value  # type: ignore[return-value]"},{"line_number":109,"context_line":"    elif issubclass(data_type, dict):"},{"line_number":110,"context_line":"        if isinstance(value, dict):"},{"line_number":111,"context_line":"            return data_type(**value)"}],"source_content_type":"text/x-python","patch_set":1,"id":"74e6fb24_62e732b7","line":108,"updated":"2026-04-07 10:39:17.000000000","message":"We should add a `FIXME` here since this likely indicates a bug in the (very complicated) typing here","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}],"openstack/tests/base.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[{"line_number":34,"context_line":"    \"\"\"Test case base class for all tests.\"\"\""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    # A way to adjust slow test classes"},{"line_number":37,"context_line":"    TIMEOUT_SCALING_FACTOR: float \u003d 1.0  # type: ignore[assignment]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def setUp(self):"},{"line_number":40,"context_line":"        \"\"\"Run before each test method to initialize test environment.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"078c1c85_c4a29b25","line":37,"updated":"2026-04-07 10:39:17.000000000","message":"This is an oslotest bug. I\u0027m fixing it here https://review.opendev.org/c/openstack/oslotest/+/983353 (but that\u0027s blocked by https://review.opendev.org/c/openstack/requirements/+/983524)","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        # attach-on-exception logic added"},{"line_number":91,"context_line":"        pass"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def assertEqual(self, first, second, *args, **kwargs):  # type: ignore[override]"},{"line_number":94,"context_line":"        \u0027\u0027\u0027Munch aware wrapper\u0027\u0027\u0027"},{"line_number":95,"context_line":"        if isinstance(first, utils.Munch):"},{"line_number":96,"context_line":"            first \u003d first.toDict()"}],"source_content_type":"text/x-python","patch_set":1,"id":"0b4807dd_1688d712","line":93,"updated":"2026-04-07 10:39:17.000000000","message":"This is a genuine issue. We should copy the signature from `testtools.testcase.TestCase`.","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}],"openstack/tests/functional/cloud/test_devstack.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class TestDevstack(base.BaseFunctionalTest):"},{"line_number":30,"context_line":"    env: str"},{"line_number":31,"context_line":"    service: str"},{"line_number":32,"context_line":"    scenarios \u003d ["},{"line_number":33,"context_line":"        (\u0027designate\u0027, dict(env\u003d\u0027DESIGNATE\u0027, service\u003d\u0027dns\u0027)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"463b083b_ff7a0adf","line":30,"updated":"2026-04-07 10:39:17.000000000","message":"Probably worth having a comment indicating that these are sourced from the scenarios.","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}],"openstack/tests/functional/network/v2/common.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestTagNeutron(base.BaseFunctionalTest):"},{"line_number":25,"context_line":"    ID: str | None"},{"line_number":26,"context_line":"    get_command \u003d _get_command"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_set_tags(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"98168900_98109cf5","line":25,"updated":"2026-04-07 10:39:17.000000000","message":"Will this ever be `None` at runtime?","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}],"openstack/tests/functional/network/v2/test_floating_ip.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    IPV4 \u003d 4"},{"line_number":24,"context_line":"    EXT_CIDR \u003d \"10.100.0.0/24\""},{"line_number":25,"context_line":"    INT_CIDR \u003d \"10.101.0.0/24\""},{"line_number":26,"context_line":"    EXT_NET_ID: str"},{"line_number":27,"context_line":"    EXT_NET_NAME: str"},{"line_number":28,"context_line":"    EXT_SUB_NAME: str"},{"line_number":29,"context_line":"    INT_NET_ID: str"},{"line_number":30,"context_line":"    EXT_SUB_ID: str"},{"line_number":31,"context_line":"    INT_SUB_ID: str"}],"source_content_type":"text/x-python","patch_set":1,"id":"13ce678f_486576e4","line":28,"range":{"start_line":26,"start_character":19,"end_line":28,"end_character":21},"updated":"2026-04-07 10:39:17.000000000","message":"Nothing actually sets these, which means the call to `_create_network` below that actually uses this is clearly never being executed. I believe we should just drop that call and instead raise an exception if `self.EXT_NET_ID` doesn\u0027t get set by the initial call.","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}],"openstack/tests/functional/placement/v1/test_trait.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[{"line_number":16,"context_line":"from openstack.tests.functional import base"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class TestTrait(base.BaseFunctionalTest):"},{"line_number":20,"context_line":"    trait: _trait.Trait"},{"line_number":21,"context_line":"    trait_name: str"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def setUp(self):"},{"line_number":24,"context_line":"        super().setUp()"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"891824c7_a250befe","line":22,"range":{"start_line":19,"start_character":41,"end_line":22,"end_character":1},"updated":"2026-04-07 10:39:17.000000000","message":"These reason it\u0027s not narrowing those types is because the `skipTest` call below, which is typed as `NoReturn` so mypy doesn\u0027t properly see anything in the function below that call. We should just delete this test.","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}],"openstack/tests/functional/shared_file_system/v2/test_availability_zone.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[{"line_number":22,"context_line":"        for az in azs:"},{"line_number":23,"context_line":"            for attribute in (\u0027id\u0027, \u0027name\u0027, \u0027created_at\u0027, \u0027updated_at\u0027):"},{"line_number":24,"context_line":"                self.assertTrue(hasattr(az, attribute))"},{"line_number":25,"context_line":"                self.assertIsInstance(getattr(az, attribute), str)"}],"source_content_type":"text/x-python","patch_set":1,"id":"47f3bbc0_2ab1ec04","line":25,"updated":"2026-04-07 10:39:17.000000000","message":"This was clearly broken before which means it\u0027s not being executed. That\u0027s because `az` is a generator and we call `list(azs)` which iterates through the generator. By time we get to the for loop, `azs` is exhausted so it never runs. To fix this this fully, you should either wrap the `availability_zones()` call in `list` (so we have a list instead of a generator) or delete this for loop since it doesn\u0027t serve much value and feels a bit weird in a functional test.","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}],"openstack/tests/functional/shared_file_system/v2/test_export_locations.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[{"line_number":34,"context_line":"            self.SHARE_ID"},{"line_number":35,"context_line":"        )"},{"line_number":36,"context_line":"        self.assertGreater(len(list(exs)), 0)"},{"line_number":37,"context_line":"        for ex in exs:"},{"line_number":38,"context_line":"            for attribute in ("},{"line_number":39,"context_line":"                \u0027id\u0027,"},{"line_number":40,"context_line":"                \u0027path\u0027,"},{"line_number":41,"context_line":"                \u0027share_instance_id\u0027,"},{"line_number":42,"context_line":"                \u0027updated_at\u0027,"},{"line_number":43,"context_line":"                \u0027created_at\u0027,"},{"line_number":44,"context_line":"            ):"},{"line_number":45,"context_line":"                self.assertTrue(hasattr(ex, attribute))"},{"line_number":46,"context_line":"                self.assertIsInstance(getattr(ex, attribute), str)"},{"line_number":47,"context_line":"            for attribute in (\u0027is_preferred\u0027, \u0027is_admin\u0027):"},{"line_number":48,"context_line":"                self.assertTrue(hasattr(ex, attribute))"},{"line_number":49,"context_line":"                self.assertIsInstance(getattr(ex, attribute), bool)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ed859727_52cf6a30","line":49,"range":{"start_line":37,"start_character":0,"end_line":49,"end_character":67},"updated":"2026-04-07 10:39:17.000000000","message":"Same comment as in `openstack/tests/functional/shared_file_system/v2/test_availability_zone.py`","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}],"openstack/tests/functional/shared_file_system/v2/test_share_snapshot_instance.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a8a54b4a678c3c8768d687a774986d9021d1106","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ed2c437d_e6a1492d","line":40,"range":{"start_line":36,"start_character":0,"end_line":40,"end_character":1},"updated":"2026-04-07 10:39:17.000000000","message":"Same comment as in `openstack/tests/functional/shared_file_system/v2/test_availability_zone.py`","commit_id":"83a2da8f0fdc9fcd400714e6e0ec4c5e2ed9efab"}]}
