我不知道爲什麼mock_s3
修飾器在用作pytest夾具的裝飾器時不起作用。 test_with_fixture
失敗,它提供與test_without
夾具相同的代碼。那麼,它是明確裝飾的「相同」。mock_s3裝飾pytest夾具
test_with_fixture
引發AccessDenied
錯誤,但S3錯誤的類型在這種情況下不相關。問題在於,client.list_objects在使用fixture的測試中沒有被模擬。
pytest - 3.1.2
摩托 - 1.0.1
boto3 - 1.0.4
import pytest
import boto3
from moto import mock_s3
BUCKET = 'Foo'
@pytest.fixture()
@mock_s3
def moto_boto():
res = boto3.resource('s3')
res.create_bucket(Bucket=BUCKET)
def test_with_fixture(moto_boto):
client = boto3.client('s3')
client.list_objects(Bucket=BUCKET)
@mock_s3
def test_without_fixture():
res = boto3.resource('s3')
res.create_bucket(Bucket=BUCKET)
client = boto3.client('s3')
client.list_objects(Bucket=BUCKET)