将模拟的 s3 连接传递给其他方法
pass mocked s3 connection to other methods
我想在特定方法中模拟一次 s3 连接并将其传递给其他方法,而不是在所有方法之上使用 @mock_s3 并减少重复代码。
对此的任何指示都会有所帮助
class App_Test(unittest.TestCase):
@mock_s3
def get_s3_bucket(self):
return boto3.resource('s3').create_bucket(Bucket=bucket_name)
def some_test(self):
s3_bucket = get_s3_bucket()
....
def some_test_123(self):
s3_bucket = get_s3_bucket()
....
提前致谢。
如果使用 pytest fixtures 是一个选项,我喜欢在使用 moto 时使用 AWS mocks 做的事情:
@pytest.fixture
def mock_s3_bucket():
with mock_s3():
yield boto3.resource('s3').create_bucket(Bucket="test_bucket")
def test_1(mock_s3_bucket):
...
它为每个测试创建一个新的存储桶,with
确保在每次测试后正确完成清理。
我想在特定方法中模拟一次 s3 连接并将其传递给其他方法,而不是在所有方法之上使用 @mock_s3 并减少重复代码。 对此的任何指示都会有所帮助
class App_Test(unittest.TestCase):
@mock_s3
def get_s3_bucket(self):
return boto3.resource('s3').create_bucket(Bucket=bucket_name)
def some_test(self):
s3_bucket = get_s3_bucket()
....
def some_test_123(self):
s3_bucket = get_s3_bucket()
....
提前致谢。
如果使用 pytest fixtures 是一个选项,我喜欢在使用 moto 时使用 AWS mocks 做的事情:
@pytest.fixture
def mock_s3_bucket():
with mock_s3():
yield boto3.resource('s3').create_bucket(Bucket="test_bucket")
def test_1(mock_s3_bucket):
...
它为每个测试创建一个新的存储桶,with
确保在每次测试后正确完成清理。