2021-04-06 14:18:48 +00:00
|
|
|
*** Settings ***
|
2021-12-09 10:58:51 +00:00
|
|
|
Variables common.py
|
2021-04-06 14:18:48 +00:00
|
|
|
|
2021-09-27 20:41:21 +00:00
|
|
|
Library neofs.py
|
|
|
|
Library payment_neogo.py
|
|
|
|
Library contract_keywords.py
|
2021-06-01 12:07:31 +00:00
|
|
|
|
2021-04-06 14:18:48 +00:00
|
|
|
Resource common_steps_object.robot
|
2021-09-27 20:41:21 +00:00
|
|
|
Resource setup_teardown.robot
|
|
|
|
Resource payment_operations.robot
|
2021-04-26 10:30:40 +00:00
|
|
|
|
2021-07-20 11:10:13 +00:00
|
|
|
*** Variables ***
|
|
|
|
${CLEANUP_TIMEOUT} = 10s
|
2021-04-06 14:18:48 +00:00
|
|
|
|
|
|
|
*** Test cases ***
|
|
|
|
NeoFS Simple Object Operations
|
|
|
|
[Documentation] Testcase to validate NeoFS object expiration option.
|
|
|
|
[Tags] Object NeoFS NeoCLI
|
|
|
|
[Timeout] 20 min
|
|
|
|
|
2021-06-01 12:07:31 +00:00
|
|
|
[Setup] Setup
|
2021-04-26 10:30:40 +00:00
|
|
|
|
2021-06-01 12:07:31 +00:00
|
|
|
${WALLET} ${ADDR} ${WIF} = Init Wallet with Address ${ASSETS_DIR}
|
|
|
|
Payment Operations ${ADDR} ${WIF}
|
2021-12-16 06:51:26 +00:00
|
|
|
${CID} = Prepare container ${WIF}
|
2021-04-06 14:18:48 +00:00
|
|
|
|
|
|
|
${FILE} = Generate file of bytes ${SIMPLE_OBJ_SIZE}
|
|
|
|
${FILE_HASH} = Get file hash ${FILE}
|
|
|
|
|
2021-07-20 11:10:13 +00:00
|
|
|
${EPOCH} = Get Epoch
|
2021-04-06 14:18:48 +00:00
|
|
|
|
|
|
|
${EPOCH_PRE} = Evaluate ${EPOCH}-1
|
|
|
|
${EPOCH_NEXT} = Evaluate ${EPOCH}+1
|
|
|
|
${EPOCH_POST} = Evaluate ${EPOCH}+1000
|
|
|
|
|
|
|
|
# Failed on attempt to create epoch from the past
|
|
|
|
Run Keyword And Expect Error *
|
2021-06-01 12:07:31 +00:00
|
|
|
... Put object ${WIF} ${FILE} ${CID} ${EMPTY} __NEOFS__EXPIRATION_EPOCH=${EPOCH_PRE}
|
2021-04-06 14:18:48 +00:00
|
|
|
|
|
|
|
# Put object with different expiration epoch numbers (current, next, and from the distant future)
|
2021-06-01 12:07:31 +00:00
|
|
|
${OID_CUR} = Put object ${WIF} ${FILE} ${CID} ${EMPTY} __NEOFS__EXPIRATION_EPOCH=${EPOCH}
|
|
|
|
${OID_NXT} = Put object ${WIF} ${FILE} ${CID} ${EMPTY} __NEOFS__EXPIRATION_EPOCH=${EPOCH_NEXT}
|
|
|
|
${OID_PST} = Put object ${WIF} ${FILE} ${CID} ${EMPTY} __NEOFS__EXPIRATION_EPOCH=${EPOCH_POST}
|
2021-04-06 14:18:48 +00:00
|
|
|
|
|
|
|
# Check objects for existence
|
2021-06-01 12:07:31 +00:00
|
|
|
Get object ${WIF} ${CID} ${OID_CUR} ${EMPTY} file_read_cur
|
|
|
|
Get object ${WIF} ${CID} ${OID_NXT} ${EMPTY} file_read_nxt
|
|
|
|
Get object ${WIF} ${CID} ${OID_PST} ${EMPTY} file_read_pst
|
2021-04-06 14:18:48 +00:00
|
|
|
|
2021-07-20 11:10:13 +00:00
|
|
|
# Increment epoch to check that expired objects (OID_CUR) will be removed
|
|
|
|
Tick Epoch
|
|
|
|
# we assume that during this time objects must be deleted
|
|
|
|
Sleep ${CLEANUP_TIMEOUT}
|
2021-04-06 14:18:48 +00:00
|
|
|
Run Keyword And Expect Error *
|
2021-06-01 12:07:31 +00:00
|
|
|
... Get object ${WIF} ${CID} ${OID_CUR} ${EMPTY} file_read
|
2021-04-26 10:30:40 +00:00
|
|
|
|
2021-04-06 14:18:48 +00:00
|
|
|
# Check that correct object with expiration in the future is existed
|
2021-06-01 12:07:31 +00:00
|
|
|
Get object ${WIF} ${CID} ${OID_NXT} ${EMPTY} file_read
|
|
|
|
Get object ${WIF} ${CID} ${OID_PST} ${EMPTY} file_read_pst
|
2021-04-06 14:18:48 +00:00
|
|
|
|
2021-07-20 11:10:13 +00:00
|
|
|
# Increment one more epoch to check that expired object (OID_NXT) will be removed
|
|
|
|
Tick Epoch
|
|
|
|
# we assume that during this time objects must be deleted
|
|
|
|
Sleep ${CLEANUP_TIMEOUT}
|
2021-04-06 14:18:48 +00:00
|
|
|
Run Keyword And Expect Error *
|
2021-06-01 12:07:31 +00:00
|
|
|
... Get object ${WIF} ${CID} ${OID_NXT} ${EMPTY} file_read
|
2021-04-06 14:18:48 +00:00
|
|
|
|
|
|
|
# Check that correct object with expiration in the distant future is existed
|
2021-06-01 12:07:31 +00:00
|
|
|
Get object ${WIF} ${CID} ${OID_PST} ${EMPTY} file_read_pst
|
2021-04-06 14:18:48 +00:00
|
|
|
|
2021-06-01 12:07:31 +00:00
|
|
|
[Teardown] Teardown object_expiration
|