diff --git a/tests/system/test_bucket.py b/tests/system/test_bucket.py index de7074a92..32806bd4c 100644 --- a/tests/system/test_bucket.py +++ b/tests/system/test_bucket.py @@ -472,6 +472,36 @@ def test_bucket_move_blob_hns( assert source_gen != dest.generation +def test_bucket_move_blob_with_name_needs_encoding( + storage_client, + buckets_to_delete, + blobs_to_delete, +): + payload = b"move_blob_with_name_which_has_a_char_that_needs_url_encoding" + + bucket_name = _helpers.unique_name("move-blob") + bucket_obj = storage_client.bucket(bucket_name) + created = _helpers.retry_429_503(storage_client.create_bucket)(bucket_obj) + buckets_to_delete.append(created) + + source = created.blob("source") + source_gen = source.generation + source.upload_from_string(payload) + blobs_to_delete.append(source) + + dest = created.move_blob( + source, + "dest/dest_file.txt", + if_source_generation_match=source.generation, + if_source_metageneration_match=source.metageneration, + ) + blobs_to_delete.append(dest) + + assert dest.download_as_bytes() == payload + assert dest.generation is not None + assert source_gen != dest.generation + + def test_bucket_get_blob_with_user_project( storage_client, buckets_to_delete,