nixpkgs/pkgs/development/python-modules/moto/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

154 lines
5.3 KiB
Nix

{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, pythonOlder
# runtime
, aws-xray-sdk
, boto3
, botocore
, cfn-lint
, cryptography
, docker
, flask
, flask-cors
, graphql-core
, idna
, jinja2
, jsondiff
, openapi-spec-validator
, python-dateutil
, python-jose
, pyyaml
, requests
, responses
, sshpubkeys
, werkzeug
, xmltodict
# tests
, freezegun
, pytestCheckHook
, pytest-xdist
, sure
}:
buildPythonPackage rec {
pname = "moto";
version = "4.0.12";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-MPjzFljxjNsV62JsjLOgdSDw2MIZMib7yzMmrhL7okY=";
};
propagatedBuildInputs = [
aws-xray-sdk
boto3
botocore
cfn-lint
cryptography
docker
flask
flask-cors
graphql-core
idna
jinja2
jsondiff
openapi-spec-validator
python-dateutil
python-jose
pyyaml
requests
responses
sshpubkeys
werkzeug
xmltodict
];
nativeCheckInputs = [
freezegun
pytestCheckHook
sure
];
pytestFlagsArray = [
# Disable tests that try to access the network
"--deselect=tests/test_cloudformation/test_cloudformation_custom_resources.py::test_create_custom_lambda_resource__verify_cfnresponse_failed"
"--deselect=tests/test_cloudformation/test_server.py::test_cloudformation_server_get"
"--deselect=tests/test_core/test_decorator_calls.py::test_context_manager"
"--deselect=tests/test_core/test_decorator_calls.py::test_decorator_start_and_stop"
"--deselect=tests/test_core/test_request_mocking.py::test_passthrough_requests"
"--deselect=tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination"
"--deselect=tests/test_firehose/test_firehose_put.py::test_put_record_http_destination"
"--deselect=tests/test_logs/test_integration.py::test_put_subscription_filter_with_lambda"
"--deselect=tests/test_sqs/test_integration.py::test_invoke_function_from_sqs_exception"
"--deselect=tests/test_sqs/test_sqs_integration.py::test_invoke_function_from_sqs_exception"
"--deselect=tests/test_stepfunctions/test_stepfunctions.py::test_state_machine_creation_fails_with_invalid_names"
"--deselect=tests/test_stepfunctions/test_stepfunctions.py::test_state_machine_list_executions_with_pagination"
"--deselect=tests/test_iotdata/test_iotdata.py::test_update"
"--deselect=tests/test_iotdata/test_iotdata.py::test_basic"
"--deselect=tests/test_iotdata/test_iotdata.py::test_delete_field_from_device_shadow"
"--deselect=tests/test_iotdata/test_iotdata.py::test_publish"
"--deselect=tests/test_s3/test_server.py::test_s3_server_bucket_versioning"
"--deselect=tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header"
# Disable tests that require docker daemon
"--deselect=tests/test_events/test_events_lambdatriggers_integration.py::test_creating_bucket__invokes_lambda"
"--deselect=tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda"
# json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
"--deselect=tests/test_cloudformation/test_cloudformation_stack_integration.py::test_lambda_function"
# AssertionError: CloudWatch log event was not found.
"--deselect=tests/test_logs/test_integration.py::test_subscription_filter_applies_to_new_streams"
# KeyError: 'global'
"--deselect=tests/test_iotdata/test_server.py::test_iotdata_list"
"--deselect=tests/test_iotdata/test_server.py::test_publish"
# Blocks test execution
"--deselect=tests/test_utilities/test_threaded_server.py::TestThreadedMotoServer::test_load_data_from_inmemory_client"
] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
"--deselect=tests/test_utilities/test_threaded_server.py::test_threaded_moto_server__different_port"
"--deselect=tests/test_utilities/test_threaded_server.py::TestThreadedMotoServer::test_server_can_handle_multiple_services"
"--deselect=tests/test_utilities/test_threaded_server.py::TestThreadedMotoServer::test_server_is_reachable"
# AssertionError: expected `{0}` to be greater than `{1}`
"--deselect=tests/test_databrew/test_databrew_recipes.py::test_publish_recipe"
];
disabledTestPaths = [
# xml.parsers.expat.ExpatError: out of memory: line 1, column 0
"tests/test_sts/test_sts.py"
# botocore.exceptions.NoCredentialsError: Unable to locate credentials
"tests/test_redshiftdata/test_redshiftdata.py"
# Tries to access the network
"tests/test_appsync/test_appsync_schema.py"
"tests/test_awslambda/test_lambda_eventsourcemapping.py"
"tests/test_awslambda/test_lambda_invoke.py"
"tests/test_batch/test_batch_jobs.py"
"tests/test_kinesis/test_kinesis.py"
"tests/test_kinesis/test_kinesis_stream_consumers.py"
];
disabledTests = [
# only appears in aarch64 currently, but best to be safe
"test_state_machine_list_executions_with_filter"
# tests fail with 404 after Werkzeug 2.2 upgrade, see https://github.com/spulec/moto/issues/5341#issuecomment-1206995825
"test_appsync_list_tags_for_resource"
"test_s3_server_post_to_bucket_redirect"
];
meta = with lib; {
description = "Allows your tests to easily mock out AWS Services";
homepage = "https://github.com/spulec/moto";
license = licenses.asl20;
maintainers = [ ];
};
}