38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
import os
|
|
|
|
import allure
|
|
import pytest
|
|
from python_keywords.container import list_containers
|
|
from steps import s3_gate_bucket
|
|
from steps.aws_cli_client import AwsCliClient
|
|
|
|
|
|
class TestS3GateBase:
|
|
s3_client = None
|
|
|
|
@pytest.fixture(scope='class', autouse=True)
|
|
@allure.title('[Class/Autouse]: Create S3 client')
|
|
def s3_client(self, prepare_wallet_and_deposit, request):
|
|
wallet = prepare_wallet_and_deposit
|
|
s3_bearer_rules_file = f"{os.getcwd()}/robot/resources/files/s3_bearer_rules.json"
|
|
|
|
cid, bucket, access_key_id, secret_access_key, owner_private_key = \
|
|
s3_gate_bucket.init_s3_credentials(
|
|
wallet, s3_bearer_rules_file=s3_bearer_rules_file)
|
|
containers_list = list_containers(wallet)
|
|
assert cid in containers_list, f'Expected cid {cid} in {containers_list}'
|
|
|
|
if request.param == 'aws cli':
|
|
try:
|
|
client = AwsCliClient(access_key_id, secret_access_key)
|
|
except Exception as err:
|
|
if 'command was not found or was not executable' in str(err):
|
|
pytest.skip('AWS CLI was not found')
|
|
else:
|
|
raise RuntimeError(
|
|
'Error on creating instance for AwsCliClient') from err
|
|
else:
|
|
client = s3_gate_bucket.config_s3_client(
|
|
access_key_id, secret_access_key)
|
|
TestS3GateBase.s3_client = client
|
|
TestS3GateBase.wallet = wallet
|