Skip to content

Commit 7b53577

Browse files
committed
Add default retention setting to BucketSimulator
1 parent 47227d6 commit 7b53577

File tree

1 file changed

+23
-4
lines changed

1 file changed

+23
-4
lines changed

b2sdk/raw_simulator.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,20 @@ def bucket_dict(self, account_auth_token):
501501
] = self.default_server_side_encryption.algorithm.value
502502
else:
503503
default_sse['value'] = {'mode': EncryptionMode.UNKNOWN}
504-
logger.debug('default sse returned is: %s', default_sse)
504+
505+
if self.is_allowed_to_read_bucket_retention(account_auth_token):
506+
file_lock_configuration = {
507+
'isClientAuthorizedToRead': True,
508+
'value': {
509+
'defaultRetention': {
510+
'mode': self.default_retention.mode.value,
511+
'period': self.default_retention.period,
512+
},
513+
'isFileLockEnabled': self.is_file_lock_enabled,
514+
},
515+
} # yapf: disable
516+
else:
517+
file_lock_configuration = {'isClientAuthorizedToRead': False, 'value': None}
505518
return dict(
506519
accountId=self.account_id,
507520
bucketName=self.bucket_name,
@@ -513,6 +526,7 @@ def bucket_dict(self, account_auth_token):
513526
options=self.options_set,
514527
revision=self.revision,
515528
defaultServerSideEncryption=default_sse,
529+
fileLockConfiguration=file_lock_configuration,
516530
)
517531

518532
def cancel_large_file(self, file_id):
@@ -797,8 +811,9 @@ def _update_bucket(
797811
bucket_info=None,
798812
cors_rules=None,
799813
lifecycle_rules=None,
800-
if_revision_is=None,
801-
default_server_side_encryption=None,
814+
if_revision_is: Optional[int] = None,
815+
default_server_side_encryption: Optional[EncryptionSetting] = None,
816+
default_retention: Optional[BucketRetentionSetting] = None,
802817
):
803818
if if_revision_is is not None and self.revision != if_revision_is:
804819
raise Conflict()
@@ -813,6 +828,8 @@ def _update_bucket(
813828
self.lifecycle_rules = lifecycle_rules
814829
if default_server_side_encryption is not None:
815830
self.default_server_side_encryption = default_server_side_encryption
831+
if default_retention:
832+
self.default_retention = default_retention
816833
self.revision += 1
817834
return self.bucket_dict(self.api.current_token)
818835

@@ -1498,7 +1515,8 @@ def update_bucket(
14981515
cors_rules=None,
14991516
lifecycle_rules=None,
15001517
if_revision_is=None,
1501-
default_server_side_encryption=None,
1518+
default_server_side_encryption: Optional[EncryptionSetting] = None,
1519+
default_retention: Optional[BucketRetentionSetting] = None,
15021520
):
15031521
assert bucket_type or bucket_info or cors_rules or lifecycle_rules or default_server_side_encryption
15041522
bucket = self._get_bucket_by_id(bucket_id)
@@ -1510,6 +1528,7 @@ def update_bucket(
15101528
lifecycle_rules=lifecycle_rules,
15111529
if_revision_is=if_revision_is,
15121530
default_server_side_encryption=default_server_side_encryption,
1531+
default_retention=default_retention,
15131532
)
15141533

15151534
def upload_file(

0 commit comments

Comments
 (0)