forked from TrueCloudLab/frostfs-testcases
Fix 'datetime.datetime' is not iterable
Signed-off-by: Yulia Kovshova <y.kovshova@yadro.com>
This commit is contained in:
parent
7ab737b595
commit
cf748bf785
2 changed files with 35 additions and 37 deletions
|
@ -90,3 +90,29 @@ def check_tags_by_bucket(
|
||||||
assert_tags(
|
assert_tags(
|
||||||
expected_tags=expected_tags, unexpected_tags=unexpected_tags, actual_tags=actual_tags
|
expected_tags=expected_tags, unexpected_tags=unexpected_tags, actual_tags=actual_tags
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def assert_object_lock_mode(
|
||||||
|
s3_client,
|
||||||
|
bucket: str,
|
||||||
|
file_name: str,
|
||||||
|
object_lock_mode: str,
|
||||||
|
retain_untile_date,
|
||||||
|
legal_hold_status: str,
|
||||||
|
):
|
||||||
|
object_dict = s3_gate_object.get_object_s3(s3_client, bucket, file_name, full_output=True)
|
||||||
|
assert (
|
||||||
|
object_dict.get("ObjectLockMode") == object_lock_mode
|
||||||
|
), f"Expected Object Lock Mode is {object_lock_mode}"
|
||||||
|
assert (
|
||||||
|
object_dict.get("ObjectLockLegalHoldStatus") == legal_hold_status
|
||||||
|
), f"Expected Object Lock Legal Hold Status is {legal_hold_status}"
|
||||||
|
object_retain_date = object_dict.get("ObjectLockRetainUntilDate")
|
||||||
|
retain_date = (
|
||||||
|
object_retain_date
|
||||||
|
if isinstance(object_retain_date, str)
|
||||||
|
else object_retain_date.strftime("%Y-%m-%dT%H:%M:%S")
|
||||||
|
)
|
||||||
|
assert str(retain_untile_date.strftime("%Y-%m-%dT%H:%M:%S")) in str(
|
||||||
|
retain_date
|
||||||
|
), f'Expected Object Lock Retain Until Date is {str(retain_untile_date.strftime("%Y-%m-%dT%H:%M:%S"))}'
|
||||||
|
|
|
@ -9,7 +9,7 @@ from common import ASSETS_DIR, COMPLEX_OBJ_SIZE, FREE_STORAGE, SIMPLE_OBJ_SIZE
|
||||||
from data_formatters import get_wallet_public_key
|
from data_formatters import get_wallet_public_key
|
||||||
from file_helper import concat_files, generate_file, generate_file_with_content, get_file_hash
|
from file_helper import concat_files, generate_file, generate_file_with_content, get_file_hash
|
||||||
from python_keywords.payment_neogo import neofs_deposit, transfer_mainnet_gas
|
from python_keywords.payment_neogo import neofs_deposit, transfer_mainnet_gas
|
||||||
from s3_helper import check_objects_in_bucket, set_bucket_versioning
|
from s3_helper import assert_object_lock_mode, check_objects_in_bucket, set_bucket_versioning
|
||||||
from wallet import init_wallet
|
from wallet import init_wallet
|
||||||
|
|
||||||
from steps import s3_gate_bucket, s3_gate_object
|
from steps import s3_gate_bucket, s3_gate_object
|
||||||
|
@ -789,18 +789,9 @@ class TestS3GateObject(TestS3GateBase):
|
||||||
ObjectLockRetainUntilDate=date_obj.strftime("%Y-%m-%dT%H:%M:%S"),
|
ObjectLockRetainUntilDate=date_obj.strftime("%Y-%m-%dT%H:%M:%S"),
|
||||||
ObjectLockLegalHoldStatus="OFF",
|
ObjectLockLegalHoldStatus="OFF",
|
||||||
)
|
)
|
||||||
object_4 = s3_gate_object.get_object_s3(
|
assert_object_lock_mode(
|
||||||
self.s3_client, bucket, file_name, full_output=True
|
self.s3_client, bucket, file_name, "GOVERNANCE", date_obj, "OFF"
|
||||||
)
|
)
|
||||||
assert (
|
|
||||||
object_4.get("ObjectLockMode") == "GOVERNANCE"
|
|
||||||
), "Expected Object Lock Mode is GOVERNANCE"
|
|
||||||
assert str(date_obj.strftime("%Y-%m-%dT%H:%M:%S")) in object_4.get(
|
|
||||||
"ObjectLockRetainUntilDate"
|
|
||||||
), f'Expected Object Lock Retain Until Date is {str(date_obj.strftime("%Y-%m-%dT%H:%M:%S"))}'
|
|
||||||
assert (
|
|
||||||
object_4.get("ObjectLockLegalHoldStatus") == "OFF"
|
|
||||||
), "Expected Object Lock Legal Hold Status is OFF"
|
|
||||||
|
|
||||||
with allure.step(
|
with allure.step(
|
||||||
"Put new version of object with [--object-lock-mode COMPLIANCE] и [--object-lock-retain-until-date +3days]"
|
"Put new version of object with [--object-lock-mode COMPLIANCE] и [--object-lock-retain-until-date +3days]"
|
||||||
|
@ -814,18 +805,9 @@ class TestS3GateObject(TestS3GateBase):
|
||||||
ObjectLockMode="COMPLIANCE",
|
ObjectLockMode="COMPLIANCE",
|
||||||
ObjectLockRetainUntilDate=date_obj,
|
ObjectLockRetainUntilDate=date_obj,
|
||||||
)
|
)
|
||||||
object_4 = s3_gate_object.get_object_s3(
|
assert_object_lock_mode(
|
||||||
self.s3_client, bucket, file_name, full_output=True
|
self.s3_client, bucket, file_name, "COMPLIANCE", date_obj, "OFF"
|
||||||
)
|
)
|
||||||
assert (
|
|
||||||
object_4.get("ObjectLockMode") == "COMPLIANCE"
|
|
||||||
), "Expected Object Lock Mode is COMPLIANCE"
|
|
||||||
assert str(date_obj.strftime("%Y-%m-%dT%H:%M:%S")) in object_4.get(
|
|
||||||
"ObjectLockRetainUntilDate"
|
|
||||||
), f'Expected Object Lock Retain Until Date is {str(date_obj.strftime("%Y-%m-%dT%H:%M:%S"))}'
|
|
||||||
assert (
|
|
||||||
object_4.get("ObjectLockLegalHoldStatus") == "OFF"
|
|
||||||
), "Expected Object Lock Legal Hold Status is OFF"
|
|
||||||
|
|
||||||
with allure.step(
|
with allure.step(
|
||||||
"Put new version of object with [--object-lock-mode COMPLIANCE] и [--object-lock-retain-until-date +2days]"
|
"Put new version of object with [--object-lock-mode COMPLIANCE] и [--object-lock-retain-until-date +2days]"
|
||||||
|
@ -840,18 +822,7 @@ class TestS3GateObject(TestS3GateBase):
|
||||||
ObjectLockRetainUntilDate=date_obj,
|
ObjectLockRetainUntilDate=date_obj,
|
||||||
ObjectLockLegalHoldStatus="ON",
|
ObjectLockLegalHoldStatus="ON",
|
||||||
)
|
)
|
||||||
object_4 = s3_gate_object.get_object_s3(
|
assert_object_lock_mode(self.s3_client, bucket, file_name, "COMPLIANCE", date_obj, "ON")
|
||||||
self.s3_client, bucket, file_name, full_output=True
|
|
||||||
)
|
|
||||||
assert (
|
|
||||||
object_4.get("ObjectLockMode") == "COMPLIANCE"
|
|
||||||
), "Expected Object Lock Mode is COMPLIANCE"
|
|
||||||
assert str(date_obj.strftime("%Y-%m-%dT%H:%M:%S")) in object_4.get(
|
|
||||||
"ObjectLockRetainUntilDate"
|
|
||||||
), f'Expected Object Lock Retain Until Date is {str(date_obj.strftime("%Y-%m-%dT%H:%M:%S"))}'
|
|
||||||
assert (
|
|
||||||
object_4.get("ObjectLockLegalHoldStatus") == "ON"
|
|
||||||
), "Expected Object Lock Legal Hold Status is ON"
|
|
||||||
|
|
||||||
with allure.step("Put object with lock-mode"):
|
with allure.step("Put object with lock-mode"):
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
|
@ -893,18 +864,19 @@ class TestS3GateObject(TestS3GateBase):
|
||||||
generate_file_with_content(file_path=file_path_2)
|
generate_file_with_content(file_path=file_path_2)
|
||||||
bucket = s3_gate_bucket.create_bucket_s3(self.s3_client)
|
bucket = s3_gate_bucket.create_bucket_s3(self.s3_client)
|
||||||
set_bucket_versioning(self.s3_client, bucket, s3_gate_bucket.VersioningStatus.ENABLED)
|
set_bucket_versioning(self.s3_client, bucket, s3_gate_bucket.VersioningStatus.ENABLED)
|
||||||
|
# TODO: return ACL, when https://github.com/nspcc-dev/neofs-s3-gw/issues/685 will be closed
|
||||||
if sync_type == "sync":
|
if sync_type == "sync":
|
||||||
self.s3_client.sync(
|
self.s3_client.sync(
|
||||||
bucket_name=bucket,
|
bucket_name=bucket,
|
||||||
dir_path=os.path.dirname(file_path_1),
|
dir_path=os.path.dirname(file_path_1),
|
||||||
ACL="public-read-write",
|
# ACL="public-read-write",
|
||||||
Metadata=object_metadata,
|
Metadata=object_metadata,
|
||||||
)
|
)
|
||||||
elif sync_type == "cp":
|
elif sync_type == "cp":
|
||||||
self.s3_client.cp(
|
self.s3_client.cp(
|
||||||
bucket_name=bucket,
|
bucket_name=bucket,
|
||||||
dir_path=os.path.dirname(file_path_1),
|
dir_path=os.path.dirname(file_path_1),
|
||||||
ACL="public-read-write",
|
# ACL="public-read-write",
|
||||||
Metadata=object_metadata,
|
Metadata=object_metadata,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue