dev-python/moto-1.3.14: Version bump, add py38
authorPatrick McLean <patrick.mclean@sony.com>
Wed, 29 Apr 2020 23:10:40 +0000 (16:10 -0700)
committerPatrick McLean <chutzpah@gentoo.org>
Wed, 29 Apr 2020 23:10:59 +0000 (16:10 -0700)
Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
dev-python/moto/Manifest
dev-python/moto/files/moto-1.3.14-newer-botocore.patch [new file with mode: 0644]
dev-python/moto/files/moto-1.3.14-tests.patch [new file with mode: 0644]
dev-python/moto/moto-1.3.14.ebuild [new file with mode: 0644]

index f637ff3b1899677d0244546724bf7e0ec356d0e8..f46269349819b7452a8c882af848a55831235092 100644 (file)
@@ -1 +1,2 @@
+DIST moto-1.3.14.tar.gz 1829165 BLAKE2B 2ec30c4cc571492a9d2c08f66a39ad04cfc0baa7864db8a5be4ea9af24ecb59bad3e85c44fa8a7babc16bf66188cb6bef89484f1f302a11e6eec1f8dbf516492 SHA512 1fe7e9d49dadada82f24d6bef1c21419c414e027c21ed1099bd1eab7c269ac5638ed44a29d1557b37562a44b22a7c7251fc1ca8ba88cde6b82d39dbc620aa6a6
 DIST moto-1.3.8.tar.gz 1571716 BLAKE2B 8e79808d8488bcf8c15e8b5a55e93392ceb5f642f1f52c0af441cecb7adfe23a718f6d283e473e5dab82ddd21bcbed36ecb52b444cbd933405d13c8818e4f74d SHA512 901556249a2a28885b7f77e9f2c209b06391efcea66b78ce3c16edec14bcd03b251c37ef5d800d8f7a35180d59ce7568a68bcebf18e25b092eb5de801db6c587
diff --git a/dev-python/moto/files/moto-1.3.14-newer-botocore.patch b/dev-python/moto/files/moto-1.3.14-newer-botocore.patch
new file mode 100644 (file)
index 0000000..a12e384
--- /dev/null
@@ -0,0 +1,53 @@
+commit ef7fce5a4fcd951a6c2bd1b9c6d21e6cf6a711e2
+Author: gruebel <anton.gruebel@gmail.com>
+Date:   Thu Nov 21 22:35:20 2019 +0100
+
+    Fixed failing tests, due to a new required parameter StreamEnabled
+
+diff --git a/tests/test_dynamodbstreams/test_dynamodbstreams.py b/tests/test_dynamodbstreams/test_dynamodbstreams.py
+index 01cf915a..a98f97bf 100644
+--- a/tests/test_dynamodbstreams/test_dynamodbstreams.py
++++ b/tests/test_dynamodbstreams/test_dynamodbstreams.py
+@@ -213,7 +213,7 @@ class TestEdges:
+
+         resp = conn.update_table(
+             TableName="test-streams",
+-            StreamSpecification={"StreamViewType": "KEYS_ONLY"},
++            StreamSpecification={"StreamEnabled": True, "StreamViewType": "KEYS_ONLY"},
+         )
+         assert "StreamSpecification" in resp["TableDescription"]
+         assert resp["TableDescription"]["StreamSpecification"] == {
+@@ -226,7 +226,10 @@ class TestEdges:
+         with assert_raises(conn.exceptions.ResourceInUseException):
+             resp = conn.update_table(
+                 TableName="test-streams",
+-                StreamSpecification={"StreamViewType": "OLD_IMAGES"},
++                StreamSpecification={
++                    "StreamEnabled": True,
++                    "StreamViewType": "OLD_IMAGES",
++                },
+             )
+
+     def test_stream_with_range_key(self):
+@@ -243,7 +246,7 @@ class TestEdges:
+                 {"AttributeName": "color", "AttributeType": "S"},
+             ],
+             ProvisionedThroughput={"ReadCapacityUnits": 1, "WriteCapacityUnits": 1},
+-            StreamSpecification={"StreamViewType": "NEW_IMAGES"},
++            StreamSpecification={"StreamEnabled": True, "StreamViewType": "NEW_IMAGES"},
+         )
+         stream_arn = resp["TableDescription"]["LatestStreamArn"]
+
+diff --git a/moto/core/responses.py b/moto/core/responses.py
+index bf4af902..c708edb8 100644
+--- a/moto/core/responses.py
++++ b/moto/core/responses.py
+@@ -307,7 +307,7 @@ class BaseResponse(_TemplateEnvironmentMixin, ActionAuthenticatorMixin):
+         def _convert(elem, is_last):
+             if not re.match("^{.*}$", elem):
+                 return elem
+-            name = elem.replace("{", "").replace("}", "")
++            name = elem.replace("{", "").replace("}", "").replace("+", "")
+             if is_last:
+                 return "(?P<%s>[^/]*)" % name
+             return "(?P<%s>.*)" % name
diff --git a/dev-python/moto/files/moto-1.3.14-tests.patch b/dev-python/moto/files/moto-1.3.14-tests.patch
new file mode 100644 (file)
index 0000000..4fdbf80
--- /dev/null
@@ -0,0 +1,82 @@
+diff --git a/tests/test_awslambda/test_lambda.py b/tests/test_awslambda/test_lambda.py
+index 306deeea..7b8937ab 100644
+--- a/tests/test_awslambda/test_lambda.py
++++ b/tests/test_awslambda/test_lambda.py
+@@ -22,6 +22,7 @@ from moto import (
+     settings,
+     mock_sqs,
+ )
++from unittest import skip
+ from nose.tools import assert_raises
+ from botocore.exceptions import ClientError
+@@ -1024,6 +1025,7 @@ def test_create_event_source_mapping():
+     assert response["State"] == "Enabled"
++@skip("fails in sandbox")
+ @mock_logs
+ @mock_lambda
+ @mock_sqs
+@@ -1075,6 +1077,7 @@ def test_invoke_function_from_sqs():
+     assert False, "Test Failed"
++@skip("fails in sandbox")
+ @mock_logs
+ @mock_lambda
+ @mock_dynamodb2
+@@ -1135,6 +1138,7 @@ def test_invoke_function_from_dynamodb():
+     assert False, "Test Failed"
++@skip("fails in sandbox")
+ @mock_logs
+ @mock_lambda
+ @mock_sqs
+diff --git a/tests/test_cloudformation/test_validate.py b/tests/test_cloudformation/test_validate.py
+index 4dd4d7e0..3d1608e7 100644
+--- a/tests/test_cloudformation/test_validate.py
++++ b/tests/test_cloudformation/test_validate.py
+@@ -2,6 +2,7 @@ from collections import OrderedDict
+ import json
+ import yaml
+ import os
++from unittest import skip
+ import boto3
+ from nose.tools import raises
+ import botocore
+@@ -46,6 +47,7 @@ dummy_template_json = json.dumps(json_template)
+ dummy_bad_template_json = json.dumps(json_bad_template)
++@skip("needs network access")
+ @mock_cloudformation
+ def test_boto3_json_validate_successful():
+     cf_conn = boto3.client("cloudformation", region_name="us-east-1")
+@@ -87,6 +89,7 @@ yaml_bad_template = """
+ """
++@skip("needs network access")
+ @mock_cloudformation
+ def test_boto3_yaml_validate_successful():
+     cf_conn = boto3.client("cloudformation", region_name="us-east-1")
+diff --git a/tests/test_core/test_request_mocking.py b/tests/test_core/test_request_mocking.py
+index 2c44d52c..38c3a08d 100644
+--- a/tests/test_core/test_request_mocking.py
++++ b/tests/test_core/test_request_mocking.py
+@@ -1,10 +1,13 @@
+ import requests
+ import sure  # noqa
++from unittest import skip
++
+ import boto3
+ from moto import mock_sqs, settings
++@skip("Needs network access")
+ @mock_sqs
+ def test_passthrough_requests():
+     conn = boto3.client("sqs", region_name="us-west-1")
diff --git a/dev-python/moto/moto-1.3.14.ebuild b/dev-python/moto/moto-1.3.14.ebuild
new file mode 100644 (file)
index 0000000..3e3d07f
--- /dev/null
@@ -0,0 +1,83 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7,8} )
+DISTUTILS_USE_SETUPTOOLS=rdepend
+inherit distutils-r1
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="https://github.com/spulec/moto"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       >=dev-python/aws-xray-sdk-python-0.93[${PYTHON_USEDEP}]
+       $(python_gen_cond_dep 'dev-python/backports-tempfile[${PYTHON_USEDEP}]' python3_{6,7})
+       dev-python/cfn-python-lint[${PYTHON_USEDEP}]
+       >=dev-python/cryptography-2.3.0[${PYTHON_USEDEP}]
+       dev-python/cookies[${PYTHON_USEDEP}]
+       dev-python/dicttoxml[${PYTHON_USEDEP}]
+       >=dev-python/docker-py-2.5.1[${PYTHON_USEDEP}]
+       >=dev-python/idna-2.5[${PYTHON_USEDEP}]
+       >=dev-python/jinja-2.10.1[${PYTHON_USEDEP}]
+       >=dev-python/jsondiff-1.1.2[${PYTHON_USEDEP}]
+       >=dev-python/boto-2.36.0[${PYTHON_USEDEP}]
+       >=dev-python/boto3-1.9.201[${PYTHON_USEDEP}]
+       >=dev-python/botocore-1.12.201[${PYTHON_USEDEP}]
+       dev-python/flask[${PYTHON_USEDEP}]
+       dev-python/pretty-yaml[${PYTHON_USEDEP}]
+       >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
+       >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+       dev-python/pytz[${PYTHON_USEDEP}]
+       dev-python/python-dateutil[${PYTHON_USEDEP}]
+       dev-python/python-jose[${PYTHON_USEDEP}]
+       >=dev-python/responses-0.9.0[${PYTHON_USEDEP}]
+       >=dev-python/requests-2.5[${PYTHON_USEDEP}]
+       dev-python/xmltodict[${PYTHON_USEDEP}]
+       >=dev-python/six-1.9[${PYTHON_USEDEP}]
+       dev-python/werkzeug[${PYTHON_USEDEP}]
+"
+BDEPEND="
+       test? ( ${RDEPEND}
+               dev-python/freezegun[${PYTHON_USEDEP}]
+               dev-python/mock[${PYTHON_USEDEP}]
+               dev-python/nose[${PYTHON_USEDEP}]
+               dev-python/responses[${PYTHON_USEDEP}]
+               >=dev-python/sure-1.4.11[${PYTHON_USEDEP}]
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}/moto-1.3.14-newer-botocore.patch"
+       "${FILESDIR}/moto-1.3.14-tests.patch"
+)
+
+distutils_enable_tests nose
+
+python_prepare_all() {
+       sed -e 's|==|>=|' \
+               -e '/cfn-lint/ d' \
+               -i setup.py moto.egg-info/requires.txt || die
+
+       # Disable tests that fail with network-sandbox.
+       sed -e 's|^\(def \)\(test_context_manager()\)|\1_\2|' \
+               -e 's|^\(def \)\(test_decorator_start_and_stop()\)|\1_\2|' \
+               -i tests/test_core/test_decorator_calls.py || die
+
+       # Disable tests that fail with userpriv.
+       sed -e 's|^\(def \)\(test_invoke_function_from_sns()\)|\1_\2|' \
+               -e 's|^\(def \)\(test_invoke_requestresponse_function()\)|\1_\2|' \
+               -i tests/test_awslambda/test_lambda.py || die
+
+       # these tests crash nose
+       rm tests/test_xray/test_xray_client.py || die
+
+       distutils-r1_python_prepare_all
+}