at 22.05-pre 11 kB view raw
1{ lib, buildPythonPackage, fetchPypi, isPy27, fetchpatch 2, aws-xray-sdk 3, backports_tempfile 4, boto3 5, botocore 6, cfn-lint 7, docker 8, flask 9, freezegun 10, jinja2 11, jsondiff 12, mock 13, pyaml 14, python-jose 15, pytz 16, requests 17, responses 18, six 19, sshpubkeys 20, sure 21, werkzeug 22, xmltodict 23, parameterized 24, idna 25, nose 26, pytestCheckHook 27}: 28 29buildPythonPackage rec { 30 pname = "moto"; 31 version = "1.3.16"; 32 33 src = fetchPypi { 34 inherit pname version; 35 sha256 = "0zy0prsyip264i6h03lxsn1qg1n3dc8c4iyfawckjqvm24gnns3c"; 36 }; 37 38 postPatch = '' 39 substituteInPlace setup.py \ 40 --replace "ecdsa<0.15" "ecdsa" \ 41 --replace "idna<3,>=2.5" "idna" \ 42 --replace "MarkupSafe<2.0" "MarkupSafe" \ 43 ''; 44 45 patches = [ 46 # Remove dependence on boto. The boto library (long ago superseded by boto3) 47 # has not had an official release in over two years or even a commit in the 48 # last 18 months. These patches should be included in the next moto release 49 # after 1.3.16 50 (fetchpatch { 51 url = "https://github.com/spulec/moto/pull/3503/commits/ae85c539fd57034c4d5cfd0f95af41ff19862dd1.patch"; 52 sha256 = "16hr2py6q701d8ih6zcvs3lbanshpbk15ixckgdqngjf160k5m9p"; 53 excludes = ["tests/test_ec2/test_ec2_cloudformation.py"]; 54 }) 55 (fetchpatch { 56 url = "https://github.com/spulec/moto/pull/3468/commits/6ee39bd7fda4d3623569e10dcd9561bf2cd1d0bd.patch"; 57 sha256 = "10m3xdqxgys7spav9mkbhcn4z0124rlprwxnw6ysb10610xlna0i"; 58 }) 59 ]; 60 61 propagatedBuildInputs = [ 62 aws-xray-sdk 63 boto3 64 botocore 65 cfn-lint 66 docker 67 flask # required for server 68 jinja2 69 jsondiff 70 mock 71 pyaml 72 python-jose 73 pytz 74 six 75 requests 76 responses 77 sshpubkeys 78 werkzeug 79 xmltodict 80 idna 81 ] ++ lib.optionals isPy27 [ backports_tempfile ]; 82 83 # Next release after 1.3.16 will not require `nose` 84 checkInputs = [ boto3 nose freezegun pytestCheckHook sure parameterized ]; 85 86 # Multiple test files still import boto, rather than boto3 like 87 # boto is long-deprecated and broken on python3.9 88 # https://github.com/spulec/moto/blob/63ce647123755e4c4693a89f52c254596004c098/tests/test_autoscaling/test_autoscaling.py#L2 89 # NOTE: This should change to use disabledTestFiles / disabledTestPaths once that 90 # feature stabalizes: see #113153 (mostly the discussion therein), #113167, #110700 91 pytestFlagsArray = [ 92 "--ignore=tests/test_awslambda/test_policy.py" 93 "--ignore=tests/test_autoscaling/test_autoscaling.py" 94 "--ignore=tests/test_autoscaling/test_cloudformation.py" 95 "--ignore=tests/test_autoscaling/test_elbv2.py" 96 "--ignore=tests/test_autoscaling/test_launch_configurations.py" 97 "--ignore=tests/test_autoscaling/test_policies.py" 98 "--ignore=tests/test_autoscaling/test_server.py" 99 "--ignore=tests/test_awslambda/test_lambda.py" 100 "--ignore=tests/test_awslambda/test_lambda_cloudformation.py" 101 "--ignore=tests/test_batch/test_cloudformation.py" 102 "--ignore=tests/test_batch/test_server.py" 103 "--ignore=tests/test_cloudformation/test_cloudformation_depends_on.py" 104 "--ignore=tests/test_cloudformation/test_cloudformation_stack_crud.py" 105 "--ignore=tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py" 106 "--ignore=tests/test_cloudformation/test_cloudformation_stack_integration.py" 107 "--ignore=tests/test_cloudformation/test_stack_parsing.py" 108 "--ignore=tests/test_cloudformation/test_validate.py" 109 "--ignore=tests/test_cloudwatch/test_cloudwatch.py" 110 "--ignore=tests/test_cognitoidentity/test_server.py" 111 "--ignore=tests/test_config/test_config.py" 112 "--ignore=tests/test_core/test_auth.py" 113 "--ignore=tests/test_core/test_decorator_calls.py" 114 "--ignore=tests/test_core/test_nested.py" 115 "--ignore=tests/test_core/test_server.py" 116 "--ignore=tests/test_datapipeline/test_datapipeline.py" 117 "--ignore=tests/test_datapipeline/test_server.py" 118 "--ignore=tests/test_datasync/test_datasync.py" 119 "--ignore=tests/test_dynamodb/test_dynamodb.py" 120 "--ignore=tests/test_dynamodb/test_dynamodb_table_with_range_key.py" 121 "--ignore=tests/test_dynamodb/test_dynamodb_table_without_range_key.py" 122 "--ignore=tests/test_dynamodb/test_server.py" 123 "--ignore=tests/test_dynamodb2/test_dynamodb.py" 124 "--ignore=tests/test_dynamodb2/test_dynamodb_table_with_range_key.py" 125 "--ignore=tests/test_dynamodb2/test_dynamodb_table_without_range_key.py" 126 "--ignore=tests/test_dynamodb2/test_server.py" 127 "--ignore=tests/test_ec2/test_amazon_dev_pay.py" 128 "--ignore=tests/test_ec2/test_amis.py" 129 "--ignore=tests/test_ec2/test_availability_zones_and_regions.py" 130 "--ignore=tests/test_ec2/test_customer_gateways.py" 131 "--ignore=tests/test_ec2/test_dhcp_options.py" 132 "--ignore=tests/test_ec2/test_elastic_block_store.py" 133 "--ignore=tests/test_ec2/test_elastic_ip_addresses.py" 134 "--ignore=tests/test_ec2/test_elastic_network_interfaces.py" 135 "--ignore=tests/test_ec2/test_general.py" 136 "--ignore=tests/test_ec2/test_instances.py" 137 "--ignore=tests/test_ec2/test_internet_gateways.py" 138 "--ignore=tests/test_ec2/test_ip_addresses.py" 139 "--ignore=tests/test_ec2/test_key_pairs.py" 140 "--ignore=tests/test_ec2/test_monitoring.py" 141 "--ignore=tests/test_ec2/test_network_acls.py" 142 "--ignore=tests/test_ec2/test_placement_groups.py" 143 "--ignore=tests/test_ec2/test_regions.py" 144 "--ignore=tests/test_ec2/test_reserved_instances.py" 145 "--ignore=tests/test_ec2/test_route_tables.py" 146 "--ignore=tests/test_ec2/test_security_groups.py" 147 "--ignore=tests/test_ec2/test_spot_instances.py" 148 "--ignore=tests/test_ec2/test_subnets.py" 149 "--ignore=tests/test_ec2/test_tags.py" 150 "--ignore=tests/test_ec2/test_virtual_private_gateways.py" 151 "--ignore=tests/test_ec2/test_vm_export.py" 152 "--ignore=tests/test_ec2/test_vm_import.py" 153 "--ignore=tests/test_ec2/test_vpc_peering.py" 154 "--ignore=tests/test_ec2/test_vpcs.py" 155 "--ignore=tests/test_ec2/test_vpn_connections.py" 156 "--ignore=tests/test_ec2/test_vpn_connections.py" 157 "--ignore=tests/test_ec2/test_windows.py" 158 "--ignore=tests/test_ecs/test_ecs_boto3.py" 159 "--ignore=tests/test_elb/test_elb.py" 160 "--ignore=tests/test_elb/test_server.py" 161 "--ignore=tests/test_elbv2/test_elbv2.py" 162 "--ignore=tests/test_elbv2/test_server.py" 163 "--ignore=tests/test_emr/test_emr.py" 164 "--ignore=tests/test_emr/test_server.py" 165 "--ignore=tests/test_glacier/test_glacier_archives.py" 166 "--ignore=tests/test_glacier/test_glacier_jobs.py" 167 "--ignore=tests/test_glacier/test_glacier_vaults.py" 168 "--ignore=tests/test_iam/test_iam.py" 169 "--ignore=tests/test_iam/test_iam_cloudformation.py" 170 "--ignore=tests/test_iam/test_iam_groups.py" 171 "--ignore=tests/test_iam/test_server.py" 172 "--ignore=tests/test_iot/test_server.py" 173 "--ignore=tests/test_iotdata/test_server.py" 174 "--ignore=tests/test_kinesis/test_kinesis.py" 175 "--ignore=tests/test_kinesis/test_kinesis_cloudformation.py" 176 "--ignore=tests/test_kinesis/test_server.py" 177 "--ignore=tests/test_kinesisvideo/test_server.py" 178 "--ignore=tests/test_kinesisvideoarchivedmedia/test_server.py" 179 "--ignore=tests/test_kms/test_kms.py" 180 "--ignore=tests/test_kms/test_server.py" 181 "--ignore=tests/test_kms/test_utils.py" 182 "--ignore=tests/test_logs/test_logs.py" 183 "--ignore=tests/test_polly/test_server.py" 184 "--ignore=tests/test_rds/test_rds.py" 185 "--ignore=tests/test_rds/test_server.py" 186 "--ignore=tests/test_rds2/test_server.py" 187 "--ignore=tests/test_redshift/test_redshift.py" 188 "--ignore=tests/test_redshift/test_server.py" 189 "--ignore=tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py" 190 "--ignore=tests/test_route53/test_route53.py" 191 "--ignore=tests/test_s3/test_s3.py" 192 "--ignore=tests/test_s3/test_s3_cloudformation.py" 193 "--ignore=tests/test_s3/test_s3_lifecycle.py" 194 "--ignore=tests/test_s3/test_s3_storageclass.py" 195 "--ignore=tests/test_s3/test_s3_utils.py" 196 "--ignore=tests/test_s3bucket_path/test_s3bucket_path.py" 197 "--ignore=tests/test_s3bucket_path/test_s3bucket_path_combo.py" 198 "--ignore=tests/test_secretsmanager/test_server.py" 199 "--ignore=tests/test_ses/test_server.py" 200 "--ignore=tests/test_ses/test_ses.py" 201 "--ignore=tests/test_ses/test_ses_boto3.py" 202 "--ignore=tests/test_ses/test_ses_sns_boto3.py" 203 "--ignore=tests/test_sns/test_application.py" 204 "--ignore=tests/test_sns/test_application_boto3.py" 205 "--ignore=tests/test_sns/test_publishing.py" 206 "--ignore=tests/test_sns/test_publishing_boto3.py" 207 "--ignore=tests/test_sns/test_server.py" 208 "--ignore=tests/test_sns/test_subscriptions.py" 209 "--ignore=tests/test_sns/test_subscriptions_boto3.py" 210 "--ignore=tests/test_sns/test_topics.py" 211 "--ignore=tests/test_sns/test_topics_boto3.py" 212 "--ignore=tests/test_sqs/test_server.py" 213 "--ignore=tests/test_sqs/test_sqs.py" 214 "--ignore=tests/test_ssm/test_ssm_boto3.py" 215 "--ignore=tests/test_ssm/test_ssm_docs.py" 216 "--ignore=tests/test_sts/test_server.py" 217 "--ignore=tests/test_sts/test_sts.py" 218 "--ignore=tests/test_swf/models/test_activity_task.py" 219 "--ignore=tests/test_swf/models/test_decision_task.py" 220 "--ignore=tests/test_swf/models/test_timeout.py" 221 "--ignore=tests/test_swf/models/test_workflow_execution.py" 222 "--ignore=tests/test_swf/responses/test_activity_tasks.py" 223 "--ignore=tests/test_swf/responses/test_activity_types.py" 224 "--ignore=tests/test_swf/responses/test_decision_tasks.py" 225 "--ignore=tests/test_swf/responses/test_domains.py" 226 "--ignore=tests/test_swf/responses/test_timeouts.py" 227 "--ignore=tests/test_swf/responses/test_workflow_executions.py" 228 "--ignore=tests/test_swf/responses/test_workflow_types.py" 229 ]; 230 231 disabledTests = [ 232 # these tests rely on the network 233 "test_server" 234 "test_managedblockchain_nodes" 235 "test_swf" 236 "test_simple_instance" 237 "test_passthrough_requests" 238 "test_s3_server_get" 239 "test_s3_server_bucket_create" 240 "test_s3_server_post_to_bucket" 241 "test_s3_server_put_ipv6" 242 "test_s3_server_put_ipv4" 243 "test_http_proxying_integration" 244 "test_submit_job_by_name" 245 "test_submit_job" 246 "test_list_jobs" 247 "test_terminate_job" 248 "test_idtoken_contains_kid_header" 249 "test_latest_meta_data" 250 "test_meta_data_iam" 251 "test_meta_data_security_credentials" 252 "test_meta_data_default_role" 253 "test_reset_api" 254 "test_data_api" 255 "test_requests_to_amazon_subdomains_dont_work" 256 "test_get_records_seq" 257 "test_stream_with_range_key" 258 "test_create_notebook_instance_bad_volume_size" 259 ]; 260 261 meta = with lib; { 262 description = "Allows your tests to easily mock out AWS Services"; 263 homepage = "https://github.com/spulec/moto"; 264 license = licenses.asl20; 265 maintainers = [ ]; 266 }; 267}