)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cd578ba8b00663ea0550a277b82c96b7a25f2f6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9668c261_cf4470b7","updated":"2026-11-06 21:14:41.000000000","message":"there\u0027s some good ideas in here; I don\u0027t think breaking up the tests into lanes where we repeat a bunch of setup patterns and crank turns so that something can always skip somewhere is the best idea.","commit_id":"7712e8a89626d1ec990bbaf3d6a17aa1a660ea3b"}],"test/s3api/test_bucket.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"296a78c5e9fc4a0ab1df4b996f9b142311d0ecd7","unresolved":true,"context_lines":[{"line_number":63,"context_line":"            self.assertEqual(\u0027BucketAlreadyOwnedByYou\u0027, code_from_error(err))"},{"line_number":64,"context_line":"        else:"},{"line_number":65,"context_line":"            # us-east-1 answers 200 for a second create"},{"line_number":66,"context_line":"            self.skipTest(\u0027the endpoint allows a second create\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def test_create_bucket_again_does_not_apply_the_acl(self):"},{"line_number":69,"context_line":"        acl \u003d get_acl(self.client, self.bucket_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9cdcf8ea_36110484","line":66,"updated":"2026-10-30 17:16:40.000000000","message":"If we have a compat test that can skip then we cannot be confident in CI compat tests, unless we can configure zuul to report a skip as a failure.\n\nTo avoid that, we would need all varying assertions to be conditional on which region, and we need Swift to be 100% compatible with *one* region, and then we must run zuul using that region.\n\nOr, we pin the region with which Swift is compatible for all tests.\n\nI can see that it might be interesting for devs to probe other AWWS regions, but I\u0027m concerned that capability should not erode the CI coverage.","commit_id":"f9881641ffada060a691e363c9fbc684822b9f1f"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"eb71a777ddecd511fe7f5db3780de23771d998fd","unresolved":true,"context_lines":[{"line_number":78,"context_line":"        self.is_aws \u003d resp[\u0027ResponseMetadata\u0027][\u0027HTTPHeaders\u0027].get("},{"line_number":79,"context_line":"            \u0027server\u0027) \u003d\u003d \u0027AmazonS3\u0027"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_create_bucket_again_with_a_public_acl(self):"},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            self.client.delete_public_access_block(Bucket\u003dself.bucket_name)"},{"line_number":84,"context_line":"        except ClientError as err:"}],"source_content_type":"text/x-python","patch_set":4,"id":"66607132_79e1fd09","line":81,"updated":"2026-11-06 08:06:01.000000000","message":"We need to think if we really want this test enabled/included, as it creates a public bucket while testing.","commit_id":"4e9533466f81a9d4dbcbdbae3608fc9097620df2"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"747a95f8898a10ab4cde548ee93f67b33a9faf8b","unresolved":true,"context_lines":[{"line_number":134,"context_line":"            self.assertEqual(acl, get_acl(self.client, self.bucket_name))"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @skip_if_s3_acl_tests_disabled"},{"line_number":137,"context_line":"    def test_create_bucket_again_with_a_grant(self):"},{"line_number":138,"context_line":"        self.client.put_bucket_acl(Bucket\u003dself.bucket_name,"},{"line_number":139,"context_line":"                                   GrantRead\u003dself.owner,"},{"line_number":140,"context_line":"                                   GrantFullControl\u003dself.owner)"}],"source_content_type":"text/x-python","patch_set":4,"id":"b17f0be8_edea6356","line":137,"updated":"2026-11-06 08:07:03.000000000","message":"This is nearly identical to the above test - maybe just drop it? Only difference is the second create uses a grant, not a canned acl.","commit_id":"4e9533466f81a9d4dbcbdbae3608fc9097620df2"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cd578ba8b00663ea0550a277b82c96b7a25f2f6b","unresolved":true,"context_lines":[{"line_number":22,"context_line":"    skip_if_s3_acl_tests_disabled"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def skip_if_aws(func):"},{"line_number":26,"context_line":"    \"\"\"Skip against AWS.\"\"\""},{"line_number":27,"context_line":"    @functools.wraps(func)"},{"line_number":28,"context_line":"    def wrapper(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":5,"id":"267a55fc_8b37302c","line":25,"updated":"2026-11-06 21:14:41.000000000","message":"i don\u0027t want s3api-only tests in the cross compat suite; i\u0027m pretty sure better as a \"allow_tests_that_create_public_buckets\" test option","commit_id":"7712e8a89626d1ec990bbaf3d6a17aa1a660ea3b"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"4def2d5e58147e0281becad151153734e386355f","unresolved":true,"context_lines":[{"line_number":22,"context_line":"    skip_if_s3_acl_tests_disabled"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def skip_if_aws(func):"},{"line_number":26,"context_line":"    \"\"\"Skip against AWS.\"\"\""},{"line_number":27,"context_line":"    @functools.wraps(func)"},{"line_number":28,"context_line":"    def wrapper(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":5,"id":"cbca2d59_085e22e9","line":25,"in_reply_to":"267a55fc_8b37302c","updated":"2026-11-09 16:01:52.000000000","message":"Yes, that would be another good option! Minor nit - wdyt about adding more test.conf settings?","commit_id":"7712e8a89626d1ec990bbaf3d6a17aa1a660ea3b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cd578ba8b00663ea0550a277b82c96b7a25f2f6b","unresolved":true,"context_lines":[{"line_number":32,"context_line":"    return wrapper"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def skip_if_aws_legacy(func):"},{"line_number":36,"context_line":"    \"\"\"Skip against AWS in us-east-1.\"\"\""},{"line_number":37,"context_line":"    @functools.wraps(func)"},{"line_number":38,"context_line":"    def wrapper(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":5,"id":"038e97eb_563ffd24","line":35,"updated":"2026-11-06 21:14:41.000000000","message":"I think this is fine; since we\u0027re targeting compatibility with non-legacy AWS regions we\u0027ll write some tests that work on AWS \u0026 s3api and don\u0027t make sense for legacy-aws.","commit_id":"7712e8a89626d1ec990bbaf3d6a17aa1a660ea3b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cd578ba8b00663ea0550a277b82c96b7a25f2f6b","unresolved":true,"context_lines":[{"line_number":42,"context_line":"    return wrapper"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def skip_unless_aws_legacy(func):"},{"line_number":46,"context_line":"    \"\"\"Run only against AWS in us-east-1.\"\"\""},{"line_number":47,"context_line":"    @functools.wraps(func)"},{"line_number":48,"context_line":"    def wrapper(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":5,"id":"af85fff4_cfd3db8b","line":45,"updated":"2026-11-06 21:14:41.000000000","message":"i would prefer NOT to have this - I think better would be a single test that exercises the API in an expected way and captures \"known faliures\" to explicitly assert the legacy-aws behavior inline as \"exceptional\":\n\n```\ntry:\n    assert correct\nexcept AssertionError:\n    # we know legacy-aws is stupid\n    assert(is_aws)\n    assert(us-east-1)\n    assert(stupid)\n```\n\nwe don\u0027t necessarily have to do that in *every* test - most of them could reasonably just @skip_if_aws_legacy\n\nbut having a test that you can only run against legacy-aws in-order to assert a behavior s3api doesn\u0027t have doesn\u0027t really seem like what this test suite should be used for.","commit_id":"7712e8a89626d1ec990bbaf3d6a17aa1a660ea3b"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"4def2d5e58147e0281becad151153734e386355f","unresolved":true,"context_lines":[{"line_number":42,"context_line":"    return wrapper"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def skip_unless_aws_legacy(func):"},{"line_number":46,"context_line":"    \"\"\"Run only against AWS in us-east-1.\"\"\""},{"line_number":47,"context_line":"    @functools.wraps(func)"},{"line_number":48,"context_line":"    def wrapper(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":5,"id":"b6bac9df_198861e7","line":45,"in_reply_to":"af85fff4_cfd3db8b","updated":"2026-11-09 16:01:52.000000000","message":"This is weaker, isn\u0027t it? Because the same test now does have two possible outcomes.\nWe could strengthen this by using `if not aws: then... else:`, but I don\u0027t really like this as well. I think we should be as explicit as possible what we expect from a test, and don\u0027t \"hide\" different accepted outcomes in many lines of code (though we already do this sometimes today).","commit_id":"7712e8a89626d1ec990bbaf3d6a17aa1a660ea3b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cd578ba8b00663ea0550a277b82c96b7a25f2f6b","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        cls.owner \u003d \u0027id\u003d%s\u0027 % resp[\u0027Owner\u0027][\u0027ID\u0027]"},{"line_number":106,"context_line":"        # AWS names itself in the Server header, s3api not"},{"line_number":107,"context_line":"        cls.is_aws \u003d resp[\u0027ResponseMetadata\u0027][\u0027HTTPHeaders\u0027].get("},{"line_number":108,"context_line":"            \u0027server\u0027) \u003d\u003d \u0027AmazonS3\u0027"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def setUp(self):"},{"line_number":111,"context_line":"        super().setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"89920227_b43c86f1","line":108,"updated":"2026-11-06 21:14:41.000000000","message":"I\u0027m torn if this should go in a base test - *generally* I don\u0027t think:\n\n```\nif aws:\n    assert correct\nelse:\n    # TODO fix s3api\n    assert stupid\n```\n\nis a GREAT pattern, but maybe it\u0027s the direction we\u0027re going...\n\nfor the ues-case of:\n\n```\ntry:\n    assert correct\nexcept AssertionError:\n    # we know legacy-aws is stupid\n    assert(is_aws)\n    assert(us-east-1)\n    assert(stupid)\n```\n\n`is_aws \u0026\u0026 us-east-1` seems palitable; the weakness would be \"aws-legacy gets less stupid\" and we don\u0027t really get a signal for that; and maybe that\u0027s ok cause I don\u0027t really this test suite is for maintaining legacy aws stupidness beyond notcing when s3api isn\u0027t compatible with it","commit_id":"7712e8a89626d1ec990bbaf3d6a17aa1a660ea3b"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"4def2d5e58147e0281becad151153734e386355f","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        cls.owner \u003d \u0027id\u003d%s\u0027 % resp[\u0027Owner\u0027][\u0027ID\u0027]"},{"line_number":106,"context_line":"        # AWS names itself in the Server header, s3api not"},{"line_number":107,"context_line":"        cls.is_aws \u003d resp[\u0027ResponseMetadata\u0027][\u0027HTTPHeaders\u0027].get("},{"line_number":108,"context_line":"            \u0027server\u0027) \u003d\u003d \u0027AmazonS3\u0027"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def setUp(self):"},{"line_number":111,"context_line":"        super().setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1efcf68f_5a303309","line":108,"in_reply_to":"89920227_b43c86f1","updated":"2026-11-09 16:01:52.000000000","message":"I don\u0027t like `if/else` or `try/except` for different expected test outcomes - it somewhat weakens our expectations.","commit_id":"7712e8a89626d1ec990bbaf3d6a17aa1a660ea3b"}]}
