Techdebt: skip tests when docker is not running (#6026)
This commit is contained in:
parent
0d7cec26b7
commit
18ec0c5467
6
Makefile
6
Makefile
@ -36,10 +36,10 @@ format:
|
|||||||
test-only:
|
test-only:
|
||||||
rm -f .coverage
|
rm -f .coverage
|
||||||
rm -rf cover
|
rm -rf cover
|
||||||
pytest -sv --cov=moto --cov-report xml ./tests/ $(TEST_EXCLUDE)
|
pytest -sv -rs --cov=moto --cov-report xml ./tests/ $(TEST_EXCLUDE)
|
||||||
# https://github.com/aws/aws-xray-sdk-python/issues/196 - Run these tests separately without Coverage enabled
|
# https://github.com/aws/aws-xray-sdk-python/issues/196 - Run these tests separately without Coverage enabled
|
||||||
pytest -sv ./tests/test_xray
|
pytest -sv -rs ./tests/test_xray
|
||||||
MOTO_CALL_RESET_API=false pytest --cov=moto --cov-report xml --cov-append -n 4 $(PARALLEL_TESTS)
|
MOTO_CALL_RESET_API=false pytest -rs --cov=moto --cov-report xml --cov-append -n 4 $(PARALLEL_TESTS)
|
||||||
|
|
||||||
test: lint test-only
|
test: lint test-only
|
||||||
|
|
||||||
|
@ -59,7 +59,6 @@ from tempfile import TemporaryDirectory
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
docker_3 = docker.__version__[0] >= "3"
|
docker_3 = docker.__version__[0] >= "3"
|
||||||
|
|
||||||
|
|
||||||
@ -830,6 +829,7 @@ class LambdaFunction(CloudFormationModel, DockerModel):
|
|||||||
except docker.errors.DockerException as e:
|
except docker.errors.DockerException as e:
|
||||||
# Docker itself is probably not running - there will be no Lambda-logs to handle
|
# Docker itself is probably not running - there will be no Lambda-logs to handle
|
||||||
msg = f"error running docker: {e}"
|
msg = f"error running docker: {e}"
|
||||||
|
logger.error(msg)
|
||||||
self.save_logs(msg)
|
self.save_logs(msg)
|
||||||
return msg, True, ""
|
return msg, True, ""
|
||||||
|
|
||||||
|
@ -32,6 +32,9 @@ ENABLE_AMI_VALIDATION = bool(os.environ.get("MOTO_ENABLE_AMI_VALIDATION", False)
|
|||||||
|
|
||||||
PRETTIFY_RESPONSES = bool(os.environ.get("MOTO_PRETTIFY_RESPONSES", False))
|
PRETTIFY_RESPONSES = bool(os.environ.get("MOTO_PRETTIFY_RESPONSES", False))
|
||||||
|
|
||||||
|
# Fully skip test that require docker
|
||||||
|
SKIP_REQUIRES_DOCKER = bool(os.environ.get("TESTS_SKIP_REQUIRES_DOCKER", False))
|
||||||
|
|
||||||
|
|
||||||
def get_sf_execution_history_type():
|
def get_sf_execution_history_type():
|
||||||
"""
|
"""
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
coverage
|
coverage
|
||||||
pytest
|
pytest
|
||||||
pytest-cov
|
pytest-cov
|
||||||
|
pytest-ordering
|
||||||
pytest-xdist
|
pytest-xdist
|
||||||
surer
|
surer
|
||||||
freezegun
|
freezegun
|
||||||
|
@ -211,7 +211,8 @@ universal=1
|
|||||||
|
|
||||||
[tool:pytest]
|
[tool:pytest]
|
||||||
markers =
|
markers =
|
||||||
network: marks tests which require network connection
|
network: requires network connection
|
||||||
|
requires_docker: requires running docker
|
||||||
|
|
||||||
[coverage:run]
|
[coverage:run]
|
||||||
relative_files = True
|
relative_files = True
|
||||||
|
8
tests/markers.py
Normal file
8
tests/markers.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from moto import settings
|
||||||
|
|
||||||
|
requires_docker = pytest.mark.requires_docker
|
||||||
|
|
||||||
|
if settings.SKIP_REQUIRES_DOCKER:
|
||||||
|
requires_docker = pytest.mark.skip(reason="running docker required")
|
@ -14,6 +14,7 @@ from .utilities import (
|
|||||||
wait_for_log_msg,
|
wait_for_log_msg,
|
||||||
get_test_zip_file_error,
|
get_test_zip_file_error,
|
||||||
)
|
)
|
||||||
|
from ..markers import requires_docker
|
||||||
|
|
||||||
_lambda_region = "us-west-2"
|
_lambda_region = "us-west-2"
|
||||||
boto3.setup_default_session(region_name=_lambda_region)
|
boto3.setup_default_session(region_name=_lambda_region)
|
||||||
@ -54,6 +55,7 @@ def test_create_event_source_mapping():
|
|||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_sqs
|
@mock_sqs
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_from_sqs(key):
|
def test_invoke_function_from_sqs(key):
|
||||||
function_name = str(uuid4())[0:6]
|
function_name = str(uuid4())[0:6]
|
||||||
sqs = boto3.resource("sqs", region_name="us-east-1")
|
sqs = boto3.resource("sqs", region_name="us-east-1")
|
||||||
@ -98,6 +100,7 @@ def test_invoke_function_from_sqs(key):
|
|||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_from_dynamodb_put():
|
def test_invoke_function_from_dynamodb_put():
|
||||||
dynamodb = boto3.client("dynamodb", region_name="us-east-1")
|
dynamodb = boto3.client("dynamodb", region_name="us-east-1")
|
||||||
table_name = str(uuid4())[0:6] + "_table"
|
table_name = str(uuid4())[0:6] + "_table"
|
||||||
@ -149,6 +152,7 @@ def test_invoke_function_from_dynamodb_put():
|
|||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_from_dynamodb_update():
|
def test_invoke_function_from_dynamodb_update():
|
||||||
dynamodb = boto3.client("dynamodb", region_name="us-east-1")
|
dynamodb = boto3.client("dynamodb", region_name="us-east-1")
|
||||||
table_name = str(uuid4())[0:6] + "_table"
|
table_name = str(uuid4())[0:6] + "_table"
|
||||||
@ -210,6 +214,7 @@ def test_invoke_function_from_dynamodb_update():
|
|||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_sqs
|
@mock_sqs
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_from_sqs_exception():
|
def test_invoke_function_from_sqs_exception():
|
||||||
function_name = str(uuid4())[0:6]
|
function_name = str(uuid4())[0:6]
|
||||||
logs_conn = boto3.client("logs", region_name="us-east-1")
|
logs_conn = boto3.client("logs", region_name="us-east-1")
|
||||||
@ -274,6 +279,7 @@ def test_invoke_function_from_sqs_exception():
|
|||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_sns
|
@mock_sns
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_from_sns():
|
def test_invoke_function_from_sns():
|
||||||
logs_conn = boto3.client("logs", region_name=_lambda_region)
|
logs_conn = boto3.client("logs", region_name=_lambda_region)
|
||||||
sns_conn = boto3.client("sns", region_name=_lambda_region)
|
sns_conn = boto3.client("sns", region_name=_lambda_region)
|
||||||
|
@ -20,6 +20,7 @@ from .utilities import (
|
|||||||
get_lambda_using_network_mode,
|
get_lambda_using_network_mode,
|
||||||
get_test_zip_largeresponse,
|
get_test_zip_largeresponse,
|
||||||
)
|
)
|
||||||
|
from ..markers import requires_docker
|
||||||
|
|
||||||
_lambda_region = "us-west-2"
|
_lambda_region = "us-west-2"
|
||||||
boto3.setup_default_session(region_name=_lambda_region)
|
boto3.setup_default_session(region_name=_lambda_region)
|
||||||
@ -27,6 +28,7 @@ boto3.setup_default_session(region_name=_lambda_region)
|
|||||||
|
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_that_throws_error():
|
def test_invoke_function_that_throws_error():
|
||||||
conn = boto3.client("lambda", _lambda_region)
|
conn = boto3.client("lambda", _lambda_region)
|
||||||
function_name = str(uuid4())[0:6]
|
function_name = str(uuid4())[0:6]
|
||||||
@ -61,6 +63,7 @@ def test_invoke_function_that_throws_error():
|
|||||||
@pytest.mark.parametrize("invocation_type", [None, "RequestResponse"])
|
@pytest.mark.parametrize("invocation_type", [None, "RequestResponse"])
|
||||||
@pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"])
|
@pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"])
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_invoke_requestresponse_function(invocation_type, key):
|
def test_invoke_requestresponse_function(invocation_type, key):
|
||||||
conn = boto3.client("lambda", _lambda_region)
|
conn = boto3.client("lambda", _lambda_region)
|
||||||
function_name = str(uuid4())[0:6]
|
function_name = str(uuid4())[0:6]
|
||||||
@ -118,6 +121,7 @@ def test_invoke_requestresponse_function(invocation_type, key):
|
|||||||
|
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_invoke_event_function():
|
def test_invoke_event_function():
|
||||||
conn = boto3.client("lambda", _lambda_region)
|
conn = boto3.client("lambda", _lambda_region)
|
||||||
function_name = str(uuid4())[0:6]
|
function_name = str(uuid4())[0:6]
|
||||||
@ -211,6 +215,7 @@ def test_invoke_lambda_using_networkmode():
|
|||||||
|
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_with_multiple_files_in_zip():
|
def test_invoke_function_with_multiple_files_in_zip():
|
||||||
conn = boto3.client("lambda", _lambda_region)
|
conn = boto3.client("lambda", _lambda_region)
|
||||||
function_name = str(uuid4())[0:6]
|
function_name = str(uuid4())[0:6]
|
||||||
@ -237,6 +242,7 @@ def test_invoke_function_with_multiple_files_in_zip():
|
|||||||
|
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_invoke_dryrun_function():
|
def test_invoke_dryrun_function():
|
||||||
conn = boto3.client("lambda", _lambda_region)
|
conn = boto3.client("lambda", _lambda_region)
|
||||||
function_name = str(uuid4())[0:6]
|
function_name = str(uuid4())[0:6]
|
||||||
@ -300,6 +306,7 @@ if settings.TEST_SERVER_MODE:
|
|||||||
|
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_invoke_lambda_error():
|
def test_invoke_lambda_error():
|
||||||
lambda_fx = """
|
lambda_fx = """
|
||||||
def lambda_handler(event, context):
|
def lambda_handler(event, context):
|
||||||
@ -335,6 +342,7 @@ def lambda_handler(event, context):
|
|||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
@pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"])
|
@pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"])
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_invoke_async_function(key):
|
def test_invoke_async_function(key):
|
||||||
conn = boto3.client("lambda", _lambda_region)
|
conn = boto3.client("lambda", _lambda_region)
|
||||||
function_name = str(uuid4())[0:6]
|
function_name = str(uuid4())[0:6]
|
||||||
@ -360,6 +368,7 @@ def test_invoke_async_function(key):
|
|||||||
|
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_large_response():
|
def test_invoke_function_large_response():
|
||||||
# AWS Lambda should only return bodies smaller than 6 MB
|
# AWS Lambda should only return bodies smaller than 6 MB
|
||||||
conn = boto3.client("lambda", _lambda_region)
|
conn = boto3.client("lambda", _lambda_region)
|
||||||
|
@ -8,6 +8,8 @@ import pytest
|
|||||||
import time
|
import time
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
|
from ..markers import requires_docker
|
||||||
|
|
||||||
|
|
||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_ec2
|
@mock_ec2
|
||||||
@ -94,6 +96,7 @@ def test_submit_job_by_name():
|
|||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
|
@requires_docker
|
||||||
def test_submit_job():
|
def test_submit_job():
|
||||||
ec2_client, iam_client, _, logs_client, batch_client = _get_clients()
|
ec2_client, iam_client, _, logs_client, batch_client = _get_clients()
|
||||||
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
||||||
@ -158,6 +161,7 @@ def test_submit_job():
|
|||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
|
@requires_docker
|
||||||
def test_submit_job_multinode():
|
def test_submit_job_multinode():
|
||||||
ec2_client, iam_client, _, logs_client, batch_client = _get_clients()
|
ec2_client, iam_client, _, logs_client, batch_client = _get_clients()
|
||||||
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
||||||
@ -224,6 +228,7 @@ def test_submit_job_multinode():
|
|||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
|
@requires_docker
|
||||||
def test_list_jobs():
|
def test_list_jobs():
|
||||||
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
||||||
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
||||||
@ -290,6 +295,7 @@ def test_list_jobs():
|
|||||||
@mock_ecs
|
@mock_ecs
|
||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
|
@requires_docker
|
||||||
def test_terminate_job():
|
def test_terminate_job():
|
||||||
ec2_client, iam_client, _, logs_client, batch_client = _get_clients()
|
ec2_client, iam_client, _, logs_client, batch_client = _get_clients()
|
||||||
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
||||||
@ -396,6 +402,7 @@ def test_cancel_pending_job():
|
|||||||
@mock_ecs
|
@mock_ecs
|
||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
|
@requires_docker
|
||||||
def test_cancel_running_job():
|
def test_cancel_running_job():
|
||||||
"""
|
"""
|
||||||
Test verifies that the moment the job has started, we can't cancel anymore
|
Test verifies that the moment the job has started, we can't cancel anymore
|
||||||
@ -476,6 +483,7 @@ def _wait_for_job_statuses(client, job_id, statuses, seconds_to_wait=30):
|
|||||||
@mock_ecs
|
@mock_ecs
|
||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
|
@requires_docker
|
||||||
def test_failed_job():
|
def test_failed_job():
|
||||||
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
||||||
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
||||||
@ -509,6 +517,7 @@ def test_failed_job():
|
|||||||
@mock_ecs
|
@mock_ecs
|
||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
|
@requires_docker
|
||||||
def test_dependencies():
|
def test_dependencies():
|
||||||
ec2_client, iam_client, _, logs_client, batch_client = _get_clients()
|
ec2_client, iam_client, _, logs_client, batch_client = _get_clients()
|
||||||
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
||||||
@ -595,6 +604,7 @@ def retrieve_all_streams(log_stream_name, logs_client):
|
|||||||
@mock_ecs
|
@mock_ecs
|
||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
|
@requires_docker
|
||||||
def test_failed_dependencies():
|
def test_failed_dependencies():
|
||||||
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
||||||
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
||||||
@ -694,6 +704,7 @@ def test_failed_dependencies():
|
|||||||
@mock_ecs
|
@mock_ecs
|
||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
|
@requires_docker
|
||||||
def test_container_overrides():
|
def test_container_overrides():
|
||||||
"""
|
"""
|
||||||
Test if container overrides have any effect.
|
Test if container overrides have any effect.
|
||||||
@ -969,6 +980,7 @@ def test_register_job_definition_with_timeout():
|
|||||||
@mock_batch
|
@mock_batch
|
||||||
@mock_ec2
|
@mock_ec2
|
||||||
@mock_iam
|
@mock_iam
|
||||||
|
@requires_docker
|
||||||
def test_submit_job_with_timeout():
|
def test_submit_job_with_timeout():
|
||||||
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
||||||
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
||||||
@ -992,6 +1004,7 @@ def test_submit_job_with_timeout():
|
|||||||
@mock_batch
|
@mock_batch
|
||||||
@mock_ec2
|
@mock_ec2
|
||||||
@mock_iam
|
@mock_iam
|
||||||
|
@requires_docker
|
||||||
def test_submit_job_with_timeout_set_at_definition():
|
def test_submit_job_with_timeout_set_at_definition():
|
||||||
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
ec2_client, iam_client, _, _, batch_client = _get_clients()
|
||||||
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
_, _, _, iam_arn = _setup(ec2_client, iam_client)
|
||||||
|
@ -60,17 +60,17 @@ def test_submit_job_by_name():
|
|||||||
job_id = resp["jobId"]
|
job_id = resp["jobId"]
|
||||||
|
|
||||||
resp_jobs = batch_client.describe_jobs(jobs=[job_id])
|
resp_jobs = batch_client.describe_jobs(jobs=[job_id])
|
||||||
|
assert len(resp_jobs["jobs"]) == 1
|
||||||
|
|
||||||
len(resp_jobs["jobs"]).should.equal(1)
|
|
||||||
job = resp_jobs["jobs"][0]
|
job = resp_jobs["jobs"][0]
|
||||||
|
|
||||||
job["jobId"].should.equal(job_id)
|
assert job["jobId"] == job_id
|
||||||
job["jobQueue"].should.equal(queue_arn)
|
assert job["jobQueue"] == queue_arn
|
||||||
job["jobDefinition"].should.equal(job_definition_arn)
|
assert job["jobDefinition"] == job_definition_arn
|
||||||
job["status"].should.equal("SUCCEEDED")
|
assert job["status"] == "SUCCEEDED"
|
||||||
job.should.contain("container")
|
assert "container" in job
|
||||||
job["container"].should.contain("command")
|
assert "command" in job["container"]
|
||||||
job["container"].should.contain("logStreamName")
|
assert "logStreamName" in job["container"]
|
||||||
|
|
||||||
|
|
||||||
@mock_batch_simple
|
@mock_batch_simple
|
||||||
|
@ -11,6 +11,7 @@ from unittest import SkipTest
|
|||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from tests.test_awslambda.utilities import wait_for_log_msg
|
from tests.test_awslambda.utilities import wait_for_log_msg
|
||||||
from .fixtures.custom_lambda import get_template, get_template_for_unknown_lambda
|
from .fixtures.custom_lambda import get_template, get_template_for_unknown_lambda
|
||||||
|
from ..markers import requires_docker
|
||||||
|
|
||||||
|
|
||||||
def get_lambda_code():
|
def get_lambda_code():
|
||||||
@ -77,6 +78,7 @@ def test_create_custom_lambda_resource():
|
|||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_s3
|
@mock_s3
|
||||||
|
@requires_docker
|
||||||
def test_create_custom_lambda_resource__verify_cfnresponse_failed():
|
def test_create_custom_lambda_resource__verify_cfnresponse_failed():
|
||||||
#########
|
#########
|
||||||
# Integration test using a Custom Resource
|
# Integration test using a Custom Resource
|
||||||
|
@ -27,6 +27,7 @@ from moto import (
|
|||||||
from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
|
from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
|
||||||
|
|
||||||
from tests import EXAMPLE_AMI_ID, EXAMPLE_AMI_ID2
|
from tests import EXAMPLE_AMI_ID, EXAMPLE_AMI_ID2
|
||||||
|
from tests.markers import requires_docker
|
||||||
from tests.test_cloudformation.fixtures import fn_join, single_instance_with_ebs_volume
|
from tests.test_cloudformation.fixtures import fn_join, single_instance_with_ebs_volume
|
||||||
|
|
||||||
|
|
||||||
@ -179,6 +180,7 @@ def test_cloudformation_mapping_boto3():
|
|||||||
|
|
||||||
@mock_cloudformation
|
@mock_cloudformation
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
|
@requires_docker
|
||||||
def test_lambda_function():
|
def test_lambda_function():
|
||||||
# switch this to python as backend lambda only supports python execution.
|
# switch this to python as backend lambda only supports python execution.
|
||||||
lambda_code = """
|
lambda_code = """
|
||||||
|
36
tests/test_core/test_docker.py
Normal file
36
tests/test_core/test_docker.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from tests.markers import requires_docker
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@requires_docker
|
||||||
|
@pytest.mark.run(order=0)
|
||||||
|
def test_docker_package_is_available():
|
||||||
|
try:
|
||||||
|
import docker # noqa: F401 # pylint: disable=unused-import
|
||||||
|
except ImportError as err:
|
||||||
|
logger.error("error running docker: %s", err)
|
||||||
|
assert False, (
|
||||||
|
"Docker package cannot be imported. "
|
||||||
|
+ f"This causes various tests to fail. Err: {err}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@requires_docker
|
||||||
|
@pytest.mark.run(order=0)
|
||||||
|
def test_docker_is_running_and_available():
|
||||||
|
import docker
|
||||||
|
from docker.errors import DockerException
|
||||||
|
|
||||||
|
try:
|
||||||
|
docker.from_env()
|
||||||
|
except DockerException as err:
|
||||||
|
logger.error("error running docker: %s", err)
|
||||||
|
assert False, (
|
||||||
|
"Docker seems not to be running. "
|
||||||
|
+ f"This causes various tests to fail. Err: {err}"
|
||||||
|
)
|
@ -3,6 +3,7 @@ import json
|
|||||||
|
|
||||||
from moto import mock_events, mock_iam, mock_lambda, mock_logs, mock_s3
|
from moto import mock_events, mock_iam, mock_lambda, mock_logs, mock_s3
|
||||||
from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
|
from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
|
||||||
|
from ..markers import requires_docker
|
||||||
from ..test_awslambda.utilities import get_test_zip_file1, wait_for_log_msg
|
from ..test_awslambda.utilities import get_test_zip_file1, wait_for_log_msg
|
||||||
|
|
||||||
|
|
||||||
@ -11,6 +12,7 @@ from ..test_awslambda.utilities import get_test_zip_file1, wait_for_log_msg
|
|||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_s3
|
@mock_s3
|
||||||
|
@requires_docker
|
||||||
def test_creating_bucket__invokes_lambda():
|
def test_creating_bucket__invokes_lambda():
|
||||||
iam_client = boto3.client("iam", "us-east-1")
|
iam_client = boto3.client("iam", "us-east-1")
|
||||||
lambda_client = boto3.client("lambda", "us-east-1")
|
lambda_client = boto3.client("lambda", "us-east-1")
|
||||||
|
@ -13,6 +13,8 @@ from moto import mock_logs, mock_lambda, mock_iam, mock_firehose, mock_s3
|
|||||||
from moto.core.utils import unix_time_millis
|
from moto.core.utils import unix_time_millis
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
from tests.markers import requires_docker
|
||||||
|
|
||||||
|
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_logs
|
@mock_logs
|
||||||
@ -100,6 +102,7 @@ def test_put_subscription_filter_update():
|
|||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_logs
|
@mock_logs
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
|
@requires_docker
|
||||||
def test_put_subscription_filter_with_lambda():
|
def test_put_subscription_filter_with_lambda():
|
||||||
# given
|
# given
|
||||||
region_name = "us-east-1"
|
region_name = "us-east-1"
|
||||||
@ -184,6 +187,7 @@ def test_put_subscription_filter_with_lambda():
|
|||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_logs
|
@mock_logs
|
||||||
@pytest.mark.network
|
@pytest.mark.network
|
||||||
|
@requires_docker
|
||||||
def test_subscription_filter_applies_to_new_streams():
|
def test_subscription_filter_applies_to_new_streams():
|
||||||
# given
|
# given
|
||||||
region_name = "us-east-1"
|
region_name = "us-east-1"
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from tests.markers import requires_docker
|
||||||
from tests.test_batch import _get_clients, _setup
|
from tests.test_batch import _get_clients, _setup
|
||||||
from tests.test_batch.test_batch_jobs import prepare_job, _wait_for_job_status
|
from tests.test_batch.test_batch_jobs import prepare_job, _wait_for_job_status
|
||||||
|
|
||||||
@ -13,6 +14,7 @@ from unittest import SkipTest
|
|||||||
@mock_ecs
|
@mock_ecs
|
||||||
@mock_iam
|
@mock_iam
|
||||||
@mock_batch
|
@mock_batch
|
||||||
|
@requires_docker
|
||||||
def test_cancel_pending_job():
|
def test_cancel_pending_job():
|
||||||
if settings.TEST_SERVER_MODE:
|
if settings.TEST_SERVER_MODE:
|
||||||
raise SkipTest("Can't use state_manager in ServerMode directly")
|
raise SkipTest("Can't use state_manager in ServerMode directly")
|
||||||
|
@ -3,6 +3,7 @@ import json
|
|||||||
import pytest
|
import pytest
|
||||||
from moto import mock_lambda, mock_logs, mock_s3, mock_sqs
|
from moto import mock_lambda, mock_logs, mock_s3, mock_sqs
|
||||||
from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
|
from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
|
||||||
|
from tests.markers import requires_docker
|
||||||
from tests.test_awslambda.utilities import (
|
from tests.test_awslambda.utilities import (
|
||||||
get_test_zip_file_print_event,
|
get_test_zip_file_print_event,
|
||||||
get_role_name,
|
get_role_name,
|
||||||
@ -26,6 +27,7 @@ REGION_NAME = "us-east-1"
|
|||||||
(["s3:ObjectCreated:Post", "s3:ObjectCreated:*"], "ObjectCreated:Put"),
|
(["s3:ObjectCreated:Post", "s3:ObjectCreated:*"], "ObjectCreated:Put"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@requires_docker
|
||||||
def test_objectcreated_put__invokes_lambda(match_events, actual_event):
|
def test_objectcreated_put__invokes_lambda(match_events, actual_event):
|
||||||
s3_res = boto3.resource("s3", region_name=REGION_NAME)
|
s3_res = boto3.resource("s3", region_name=REGION_NAME)
|
||||||
s3_client = boto3.client("s3", region_name=REGION_NAME)
|
s3_client = boto3.client("s3", region_name=REGION_NAME)
|
||||||
|
@ -7,6 +7,7 @@ import sure # noqa # pylint: disable=unused-import
|
|||||||
|
|
||||||
import moto.server as server
|
import moto.server as server
|
||||||
from moto import mock_secretsmanager, mock_lambda, mock_iam, mock_logs, settings
|
from moto import mock_secretsmanager, mock_lambda, mock_iam, mock_logs, settings
|
||||||
|
from tests.markers import requires_docker
|
||||||
from tests.test_awslambda.test_lambda import get_test_zip_file1
|
from tests.test_awslambda.test_lambda import get_test_zip_file1
|
||||||
|
|
||||||
DEFAULT_SECRET_NAME = "test-secret"
|
DEFAULT_SECRET_NAME = "test-secret"
|
||||||
@ -456,6 +457,7 @@ if not settings.TEST_SERVER_MODE:
|
|||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_secretsmanager
|
@mock_secretsmanager
|
||||||
|
@requires_docker
|
||||||
def test_rotate_secret_lambda_invocations():
|
def test_rotate_secret_lambda_invocations():
|
||||||
conn = boto3.client("iam", region_name="us-east-1")
|
conn = boto3.client("iam", region_name="us-east-1")
|
||||||
logs_conn = boto3.client("logs", region_name="us-east-1")
|
logs_conn = boto3.client("logs", region_name="us-east-1")
|
||||||
|
@ -4,6 +4,7 @@ import time
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from moto import mock_lambda, mock_sqs, mock_logs
|
from moto import mock_lambda, mock_sqs, mock_logs
|
||||||
|
from tests.markers import requires_docker
|
||||||
from tests.test_awslambda.test_lambda import get_test_zip_file1, get_role_name
|
from tests.test_awslambda.test_lambda import get_test_zip_file1, get_role_name
|
||||||
from tests.test_awslambda.utilities import get_test_zip_file_print_event
|
from tests.test_awslambda.utilities import get_test_zip_file_print_event
|
||||||
|
|
||||||
@ -11,6 +12,7 @@ from tests.test_awslambda.utilities import get_test_zip_file_print_event
|
|||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_sqs
|
@mock_sqs
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_from_sqs_queue():
|
def test_invoke_function_from_sqs_queue():
|
||||||
logs_conn = boto3.client("logs", region_name="us-east-1")
|
logs_conn = boto3.client("logs", region_name="us-east-1")
|
||||||
sqs = boto3.resource("sqs", region_name="us-east-1")
|
sqs = boto3.resource("sqs", region_name="us-east-1")
|
||||||
@ -71,6 +73,7 @@ def test_invoke_function_from_sqs_queue():
|
|||||||
@mock_logs
|
@mock_logs
|
||||||
@mock_lambda
|
@mock_lambda
|
||||||
@mock_sqs
|
@mock_sqs
|
||||||
|
@requires_docker
|
||||||
def test_invoke_function_from_sqs_fifo_queue():
|
def test_invoke_function_from_sqs_fifo_queue():
|
||||||
"""
|
"""
|
||||||
Create a FIFO Queue
|
Create a FIFO Queue
|
||||||
|
Loading…
x
Reference in New Issue
Block a user