diff --git a/README.rst b/README.rst index 3c429d9..e970dc2 100644 --- a/README.rst +++ b/README.rst @@ -104,9 +104,9 @@ You can filter tests based on their attributes:: Bucket logging tests ======================== -Ceph has extensions for the bucket logging S3 API. For the tests to cover these extensions, the following file: `examples/rgw/boto3/service-2.sdk-extras.json` from the Ceph repo, +Ceph has extensions for the bucket logging S3 API. For the tests to cover these extensions, the following file: `examples/rgw/boto3/service-2.sdk-extras.json` from the Ceph repo, should be copied to the: `~/.aws/models/s3/2006-03-01/` directory on the machine where the tests are run. -If the file is not present, the tests will still run, but the extension tests will be skipped. In this case, the bucket logging object roll time must be decreased manually from its default of +If the file is not present, the tests will still run, but the extension tests will be skipped. In this case, the bucket logging object roll time must be decreased manually from its default of 300 seconds to 5 seconds:: vstart.sh -o rgw_bucket_logging_object_roll_time=5 @@ -114,3 +114,7 @@ If the file is not present, the tests will still run, but the extension tests wi Then the tests can be run with:: S3TEST_CONF=your.conf tox -- -m 'bucket_logging' + +To run the only bucket logging tests that do not need extension of rollover time, use:: + + S3TEST_CONF=your.conf tox -- -m 'bucket_logging and not fails_without_logging_rollover' diff --git a/pytest.ini b/pytest.ini index c81a38c..1291869 100644 --- a/pytest.ini +++ b/pytest.ini @@ -9,6 +9,7 @@ markers = bucket_encryption bucket_logging bucket_logging_cleanup + fails_without_logging_rollover checksum cloud_transition cloud_restore diff --git a/s3tests_boto3/functional/test_s3.py b/s3tests_boto3/functional/test_s3.py index c39f9d8..529deb6 100644 --- a/s3tests_boto3/functional/test_s3.py +++ b/s3tests_boto3/functional/test_s3.py @@ -15694,6 +15694,7 @@ def _put_bucket_logging_tenant(log_type): @pytest.mark.bucket_logging @pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_put_bucket_logging_tenant_s(): _put_bucket_logging_tenant('Standard') @@ -15765,6 +15766,7 @@ def _put_bucket_logging_account(log_type): @pytest.mark.bucket_logging @pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_put_bucket_logging_account_s(): _put_bucket_logging_account('Standard') @@ -15882,16 +15884,22 @@ def _bucket_logging_put_objects(versioned): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_put_objects(): _bucket_logging_put_objects(False) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_put_objects_versioned(): _bucket_logging_put_objects(True) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_put_concurrency(): src_bucket_name = get_new_bucket() log_bucket_name = get_new_bucket_name() @@ -16006,11 +16014,15 @@ def _bucket_logging_delete_objects(versioned): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_delete_objects(): _bucket_logging_delete_objects(False) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_delete_objects_versioned(): _bucket_logging_delete_objects(True) @@ -16071,11 +16083,15 @@ def _bucket_logging_get_objects(versioned): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_get_objects(): _bucket_logging_get_objects(False) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_get_objects_versioned(): _bucket_logging_get_objects(True) @@ -16143,21 +16159,29 @@ def _bucket_logging_copy_objects(versioned, another_bucket): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_copy_objects(): _bucket_logging_copy_objects(False, False) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_copy_objects_versioned(): _bucket_logging_copy_objects(True, False) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_copy_objects_bucket(): _bucket_logging_copy_objects(False, True) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_copy_objects_bucket_versioned(): _bucket_logging_copy_objects(True, True) @@ -16216,11 +16240,15 @@ def _bucket_logging_head_objects(versioned): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_head_objects(): _bucket_logging_head_objects(False) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_head_objects_versioned(): _bucket_logging_head_objects(True) @@ -16275,11 +16303,15 @@ def _bucket_logging_mpu(versioned): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_mpu(): _bucket_logging_mpu(False) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_mpu_versioned(): _bucket_logging_mpu(True) @@ -16331,11 +16363,15 @@ def _bucket_logging_mpu_copy(versioned): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_mpu_copy(): _bucket_logging_mpu_copy(False) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_mpu_copy_versioned(): _bucket_logging_mpu_copy(True) @@ -16402,11 +16438,15 @@ def _bucket_logging_multi_delete(versioned): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_multi_delete(): _bucket_logging_multi_delete(False) @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_multi_delete_versioned(): _bucket_logging_multi_delete(True) @@ -16547,6 +16587,8 @@ def test_bucket_logging_roll_time(): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_multiple_prefixes(): log_bucket_name = get_new_bucket_name() log_bucket = get_new_bucket_resource(name=log_bucket_name) @@ -16601,6 +16643,8 @@ def test_bucket_logging_multiple_prefixes(): @pytest.mark.bucket_logging +@pytest.mark.fails_on_aws +@pytest.mark.fails_without_logging_rollover def test_bucket_logging_single_prefix(): log_bucket_name = get_new_bucket_name() log_bucket = get_new_bucket_resource(name=log_bucket_name)