commit:     cefee5c029474bc6ab3161b10992c8821a8d4d8c
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Wed Apr 29 23:10:40 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Apr 29 23:10:59 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cefee5c0

dev-python/moto-1.3.14: Version bump, add py38

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 dev-python/moto/Manifest                           |  1 +
 .../moto/files/moto-1.3.14-newer-botocore.patch    | 53 ++++++++++++++
 dev-python/moto/files/moto-1.3.14-tests.patch      | 82 +++++++++++++++++++++
 dev-python/moto/moto-1.3.14.ebuild                 | 83 ++++++++++++++++++++++
 4 files changed, 219 insertions(+)

diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
index f637ff3b189..f4626934981 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -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
index 00000000000..a12e3848336
--- /dev/null
+++ b/dev-python/moto/files/moto-1.3.14-newer-botocore.patch
@@ -0,0 +1,53 @@
+commit ef7fce5a4fcd951a6c2bd1b9c6d21e6cf6a711e2
+Author: gruebel <anton.grue...@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
index 00000000000..4fdbf801eec
--- /dev/null
+++ b/dev-python/moto/files/moto-1.3.14-tests.patch
@@ -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
index 00000000000..3e3d07f6fb8
--- /dev/null
+++ b/dev-python/moto/moto-1.3.14.ebuild
@@ -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
+}

Reply via email to