Как смоделировать внутреннее состояние снимка тома с помощью библиотеки boto? - PullRequest
0 голосов
/ 24 марта 2020

Я использую moto для тестирования кода, который использует boto3 (AWS SDK для python).
Вот фрагмент моего тестового кода:

import boto3

from moto.ec2 import mock_ec2
import pytest

import os

@pytest.fixture(scope="function")
def aws_credentials():
    """Mocked AWS Credentials for moto."""
    os.environ["AWS_ACCESS_KEY_ID"] = "testing"
    os.environ["AWS_SECRET_ACCESS_KEY"] = "testing"
    os.environ["AWS_SECURITY_TOKEN"] = "testing"
    os.environ["AWS_SESSION_TOKEN"] = "testing"


@pytest.fixture(scope="function")
def ec2_client(aws_credentials):
    with mock_ec2():
        yield boto3.client("ec2", region_name="us-west-2")


@pytest.fixture(scope="function")
def ec2_resource(aws_credentials):
    with mock_ec2():
        yield boto3.resource("ec2", region_name="us-west-2")


def test_describe_snapshots_in_completed_state(ec2_client, ec2_resource):

    volume = ec2_resource.create_volume(Size=10, AvailabilityZone="us-west-2a")
    snapshot = volume.create_snapshot("a test snapshot")
    snapshot.reload()
    assert snapshot.state == "completed"
    snapshot_set = ec2_client.describe_snapshots(
            Filters=[{"Name": "snapshot-id", "Values": [f"{snapshot.id}",]},],
        )['Snapshots']
    assert len(snapshot_set) == 1

Я хочу создать другой метод тестирования для тестирования фильтра снимков, который возвращает все снимки, которые находятся в состоянии «не завершено».

Как я могу исправить существующее состояние снимка и переопределить его состояние?

...