Date: Saturday, January 9, 2021 @ 06:59:17 Author: yan12125 Revision: 815049
archrelease: copy trunk to community-any Added: python-moto/repos/community-any/PKGBUILD (from rev 815047, python-moto/trunk/PKGBUILD) python-moto/repos/community-any/python-moto-botocore-1.19.41.patch (from rev 815048, python-moto/trunk/python-moto-botocore-1.19.41.patch) python-moto/repos/community-any/sdist-no-pyc.diff (from rev 815048, python-moto/trunk/sdist-no-pyc.diff) Deleted: python-moto/repos/community-any/PKGBUILD python-moto/repos/community-any/sdist-no-pyc.diff ------------------------------------+ PKGBUILD | 167 ++++++++++++++++++----------------- python-moto-botocore-1.19.41.patch | 149 +++++++++++++++++++++++++++++++ sdist-no-pyc.diff | 18 +-- 3 files changed, 244 insertions(+), 90 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2021-01-09 06:59:08 UTC (rev 815048) +++ PKGBUILD 2021-01-09 06:59:17 UTC (rev 815049) @@ -1,81 +0,0 @@ -# Maintainer: Chih-Hsuan Yen <yan12...@archlinux.org> -# Contributor: Guillaume Horel <guillaume.ho...@gmail.com> - -pkgname=python-moto -_pkgname=moto -pkgver=1.3.16 -pkgrel=4 -pkgdesc='Moto is a library to mock out the boto library.' -arch=(any) -url='https://github.com/spulec/moto' -license=(Apache) -depends=(python-aws-xray-sdk python-boto python-boto3 - python-cryptography python-dateutil python-docker python-jinja - python-jsondiff python-jose python-mock python-yaml - python-pytz python-requests python-responses python-xmltodict - python-werkzeug python-cfn-lint python-setuptools python-sshpubkeys) -checkdepends=(python-flask python-freezegun python-nose python-parameterized - python-sure tk) -optdepends=( - 'python-flask: for moto_server' -) -source=("https://files.pythonhosted.org/packages/source/m/moto/moto-${pkgver}.tar.gz" - "$pkgname-cfn-lint-0.39.patch::https://github.com/spulec/moto/commit/403b06d9c5d9fda4d9c51f44d5213cf584d7dc11.patch" - "$pkgname-boto3-1.14.59.patch::https://github.com/spulec/moto/commit/9f0f230d130a839fb2de6bfc97af4182360fbcdb.patch" - "$pkgname-responses-0.12.1.patch::https://github.com/spulec/moto/commit/7749c1f75781cd5fb2367b089c31a92e127b07b1.patch" - sdist-no-pyc.diff) -sha256sums=('6c686b1f117563391957ce47c2106bc3868783d59d0e004d2446dce875bec07f' - 'afb3a13ccfe1646403e5727c812e26ab88106c212b735d5ab9a55879fcb34e43' - 'f902d1b01c12e8a1b8e87109a984ab1463b60b04e1dbdeaa94550276d2580a11' - 'cca3d8749c07eac50a17cff7b6dffdb9aa8d5ce9ca974453a63516d35cb2025a' - '4193bd88380f6ab8dac49be37d940993dee4e31351ffd60c8167b7c8e5ec3208') - -prepare() { - cd $_pkgname-$pkgver - - patch -Np1 -i ../sdist-no-pyc.diff - - # https://github.com/spulec/moto/pull/3412 - patch -Np1 -i ../$pkgname-cfn-lint-0.39.patch - # https://github.com/spulec/moto/pull/3308 - patch -Np1 -i ../$pkgname-boto3-1.14.59.patch - # https://github.com/spulec/moto/pull/3466 - patch -Np1 -i ../$pkgname-responses-0.12.1.patch - - # Remove upper bounds of dependencies - sed --in-place=.orig -r 's#,?<[0-9.]+,?##;s#==([0-9.]+)#>=\1#' setup.py - diff -u setup.py{.orig,} || true -} - -build() { - cd $_pkgname-$pkgver - - python setup.py build -} - -check() { - cd $_pkgname-$pkgver - - # * test_lambda tests moto.awslambda, which requires a running docker.service - # * test_submit_job_by_name calls batch_client.submit_job, and the latter - # creates a Job object, which requires docker - # * In test_create_stack_lambda_and_dynamodb, the CloudFormation template - # contain AWS::Lambda resources and thus uses moto.awslambda - TZ=UTC nosetests -s ./tests/ \ - --exclude='test_lambda' \ - --exclude='test_list_jobs' \ - --exclude='test_submit_job' \ - --exclude='test_submit_job_by_name' \ - --exclude='test_terminate_job' \ - --exclude='test_create_stack_lambda_and_dynamodb' \ - --exclude='test_delete_subscription_filter_errors' \ - --exclude='test_put_subscription_filter_update' \ - --exclude='test_put_subscription_filter_with_lambda' -} - -package() { - cd $_pkgname-$pkgver - - # use PYTHONHASHSEED=0 work around https://bugs.python.org/issue34722 - PYTHONHASHSEED=0 python setup.py install --root="$pkgdir" --optimize=1 --skip-build -} Copied: python-moto/repos/community-any/PKGBUILD (from rev 815047, python-moto/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2021-01-09 06:59:17 UTC (rev 815049) @@ -0,0 +1,86 @@ +# Maintainer: Chih-Hsuan Yen <yan12...@archlinux.org> +# Contributor: Guillaume Horel <guillaume.ho...@gmail.com> + +pkgname=python-moto +_pkgname=moto +pkgver=1.3.16 +pkgrel=5 +pkgdesc='Moto is a library to mock out the boto library.' +arch=(any) +url='https://github.com/spulec/moto' +license=(Apache) +depends=(python-aws-xray-sdk python-boto python-boto3 + python-cryptography python-dateutil python-docker python-jinja + python-jsondiff python-jose python-mock python-yaml + python-pytz python-requests python-responses python-xmltodict + python-werkzeug python-cfn-lint python-setuptools python-sshpubkeys) +checkdepends=(python-flask python-freezegun python-nose python-parameterized + python-sure tk) +optdepends=( + 'python-flask: for moto_server' +) +source=("https://files.pythonhosted.org/packages/source/m/moto/moto-${pkgver}.tar.gz" + "$pkgname-cfn-lint-0.39.patch::https://github.com/spulec/moto/commit/403b06d9c5d9fda4d9c51f44d5213cf584d7dc11.patch" + "$pkgname-boto3-1.14.59.patch::https://github.com/spulec/moto/commit/9f0f230d130a839fb2de6bfc97af4182360fbcdb.patch" + "$pkgname-responses-0.12.1.patch::https://github.com/spulec/moto/commit/7749c1f75781cd5fb2367b089c31a92e127b07b1.patch" + # Rebased from https://github.com/spulec/moto/commit/9ecea2012a19cf929f03271dddf5ce3e17943f48 + "$pkgname-botocore-1.19.41.patch" + sdist-no-pyc.diff) +sha256sums=('6c686b1f117563391957ce47c2106bc3868783d59d0e004d2446dce875bec07f' + 'afb3a13ccfe1646403e5727c812e26ab88106c212b735d5ab9a55879fcb34e43' + 'f902d1b01c12e8a1b8e87109a984ab1463b60b04e1dbdeaa94550276d2580a11' + 'cca3d8749c07eac50a17cff7b6dffdb9aa8d5ce9ca974453a63516d35cb2025a' + 'af4505592277c795d2abdf8418c528c7ef3669282077654954307c9d1ab321ad' + '4193bd88380f6ab8dac49be37d940993dee4e31351ffd60c8167b7c8e5ec3208') + +prepare() { + cd $_pkgname-$pkgver + + patch -Np1 -i ../sdist-no-pyc.diff + + # https://github.com/spulec/moto/pull/3412 + patch -Np1 -i ../$pkgname-cfn-lint-0.39.patch + # https://github.com/spulec/moto/pull/3308 + patch -Np1 -i ../$pkgname-boto3-1.14.59.patch + # https://github.com/spulec/moto/pull/3466 + patch -Np1 -i ../$pkgname-responses-0.12.1.patch + # https://github.com/spulec/moto/pull/3575 + patch -Np1 -i ../$pkgname-botocore-1.19.41.patch + + # Remove upper bounds of dependencies + sed --in-place=.orig -r 's#,?<[0-9.]+,?##;s#==([0-9.]+)#>=\1#' setup.py + diff -u setup.py{.orig,} || true +} + +build() { + cd $_pkgname-$pkgver + + python setup.py build +} + +check() { + cd $_pkgname-$pkgver + + # * test_lambda tests moto.awslambda, which requires a running docker.service + # * test_submit_job_by_name calls batch_client.submit_job, and the latter + # creates a Job object, which requires docker + # * In test_create_stack_lambda_and_dynamodb, the CloudFormation template + # contain AWS::Lambda resources and thus uses moto.awslambda + TZ=UTC nosetests -s ./tests/ \ + --exclude='test_lambda' \ + --exclude='test_list_jobs' \ + --exclude='test_submit_job' \ + --exclude='test_submit_job_by_name' \ + --exclude='test_terminate_job' \ + --exclude='test_create_stack_lambda_and_dynamodb' \ + --exclude='test_delete_subscription_filter_errors' \ + --exclude='test_put_subscription_filter_update' \ + --exclude='test_put_subscription_filter_with_lambda' +} + +package() { + cd $_pkgname-$pkgver + + # use PYTHONHASHSEED=0 work around https://bugs.python.org/issue34722 + PYTHONHASHSEED=0 python setup.py install --root="$pkgdir" --optimize=1 --skip-build +} Copied: python-moto/repos/community-any/python-moto-botocore-1.19.41.patch (from rev 815048, python-moto/trunk/python-moto-botocore-1.19.41.patch) =================================================================== --- python-moto-botocore-1.19.41.patch (rev 0) +++ python-moto-botocore-1.19.41.patch 2021-01-09 06:59:17 UTC (rev 815049) @@ -0,0 +1,149 @@ +From 9ecea2012a19cf929f03271dddf5ce3e17943f48 Mon Sep 17 00:00:00 2001 +From: Bert Blommers <bblomm...@users.noreply.github.com> +Date: Thu, 7 Jan 2021 03:18:50 -0800 +Subject: [PATCH] Fix Blockchain to work with new API (#3575) + +* Fix Blockchain to work with new API + +* Improve Lambda->SQS error handling +--- + moto/managedblockchain/responses.py | 8 ++++---- + moto/managedblockchain/urls.py | 3 +++ + moto/managedblockchain/utils.py | 14 ++++++++++++-- + moto/sqs/models.py | 6 ++---- + requirements-dev.txt | 2 +- + setup.py | 2 +- + 6 files changed, 23 insertions(+), 12 deletions(-) + +diff --git a/moto/managedblockchain/responses.py b/moto/managedblockchain/responses.py +index 7dd628eba..55252925d 100644 +--- a/moto/managedblockchain/responses.py ++++ b/moto/managedblockchain/responses.py +@@ -10,7 +10,7 @@ + networkid_from_managedblockchain_url, + proposalid_from_managedblockchain_url, + invitationid_from_managedblockchain_url, +- memberid_from_managedblockchain_url, ++ memberid_from_managedblockchain_request, + nodeid_from_managedblockchain_url, + ) + +@@ -297,7 +297,7 @@ def _memberid_response(self, request, full_url, headers): + else: + body = request.data + network_id = networkid_from_managedblockchain_url(full_url) +- member_id = memberid_from_managedblockchain_url(full_url) ++ member_id = memberid_from_managedblockchain_request(full_url, body) + if method == "GET": + return self._memberid_response_get(network_id, member_id, headers) + elif method == "PATCH": +@@ -343,7 +343,7 @@ def _node_response(self, request, full_url, headers): + parsed_url = urlparse(full_url) + querystring = parse_qs(parsed_url.query, keep_blank_values=True) + network_id = networkid_from_managedblockchain_url(full_url) +- member_id = memberid_from_managedblockchain_url(full_url) ++ member_id = memberid_from_managedblockchain_request(full_url, body) + if method == "GET": + status = None + if "status" in querystring: +@@ -394,7 +394,7 @@ def _nodeid_response(self, request, full_url, headers): + else: + body = request.data + network_id = networkid_from_managedblockchain_url(full_url) +- member_id = memberid_from_managedblockchain_url(full_url) ++ member_id = memberid_from_managedblockchain_request(full_url, body) + node_id = nodeid_from_managedblockchain_url(full_url) + if method == "GET": + return self._nodeid_response_get(network_id, member_id, node_id, headers) +diff --git a/moto/managedblockchain/urls.py b/moto/managedblockchain/urls.py +index 442a73233..9bc2491f5 100644 +--- a/moto/managedblockchain/urls.py ++++ b/moto/managedblockchain/urls.py +@@ -16,4 +16,7 @@ + "{0}/networks/(?P<networkid>[^/.]+)/members/(?P<memberid>[^/.]+)/nodes$": ManagedBlockchainResponse.node_response, + "{0}/networks/(?P<networkid>[^/.]+)/members/(?P<memberid>[^/.]+)/nodes?(?P<querys>[^/.]+)$": ManagedBlockchainResponse.node_response, + "{0}/networks/(?P<networkid>[^/.]+)/members/(?P<memberid>[^/.]+)/nodes/(?P<nodeid>[^/.]+)$": ManagedBlockchainResponse.nodeid_response, ++ # >= botocore 1.19.41 (API change - memberId is now part of query-string or body) ++ "{0}/networks/(?P<networkid>[^/.]+)/nodes$": ManagedBlockchainResponse.node_response, ++ "{0}/networks/(?P<networkid>[^/.]+)/nodes/(?P<nodeid>[^/.]+)$": ManagedBlockchainResponse.nodeid_response, + } +diff --git a/moto/managedblockchain/utils.py b/moto/managedblockchain/utils.py +index d0485829b..84d5137a8 100644 +--- a/moto/managedblockchain/utils.py ++++ b/moto/managedblockchain/utils.py +@@ -1,8 +1,9 @@ ++import json + import random + import re + import string + +-from six.moves.urllib.parse import urlparse ++from six.moves.urllib.parse import parse_qs, urlparse + + + def region_from_managedblckchain_url(url): +@@ -27,11 +28,20 @@ def get_network_id(): + ) + + +-def memberid_from_managedblockchain_url(full_url): ++def memberid_from_managedblockchain_request(full_url, body): + id_search = re.search("\/m-[A-Z0-9]{26}", full_url, re.IGNORECASE) + return_id = None + if id_search: + return_id = id_search.group(0).replace("/", "") ++ else: ++ # >= botocore 1.19.41 can add the memberId as a query parameter, or in the body ++ parsed_url = urlparse(full_url) ++ qs = parse_qs(parsed_url.query) ++ if "memberId" in qs: ++ return_id = qs.get("memberId")[0] ++ elif body: ++ body = json.loads(body) ++ return_id = body["MemberId"] + return return_id + + +diff --git a/moto/sqs/models.py b/moto/sqs/models.py +index 421a1e5c7..a493c9428 100644 +--- a/moto/sqs/models.py ++++ b/moto/sqs/models.py +@@ -518,10 +518,8 @@ def add_message(self, message): + if result: + [backend.delete_message(self.name, m.receipt_handle) for m in messages] + else: +- [ +- backend.change_message_visibility(self.name, m.receipt_handle, 0) +- for m in messages +- ] ++ # Make messages visible again ++ [m.change_visibility(visibility_timeout=0) for m in messages] + + def get_cfn_attribute(self, attribute_name): + from moto.cloudformation.exceptions import UnformattedGetAttTemplateException +diff --git a/requirements-dev.txt b/requirements-dev.txt +index 692a1cbf3..2df056d85 100644 +--- a/requirements-dev.txt ++++ b/requirements-dev.txt +@@ -21,7 +21,7 @@ beautifulsoup4==4.6.0 + # The below pins mirror the Python version-conditional pins in setup.py + # + Jinja2>=2.10.1; python_version >= '3.6' +-mock; python_version >= '3.6' ++mock<=4.0.2; python_version >= '3.6' + more-itertools; python_version >= '3.6' + setuptools; python_version >= '3.6' + sshpubkeys>=3.1.0; python_version >= '3.6' +diff --git a/setup.py b/setup.py +index 913565eb4..0aab0bcff 100755 +--- a/setup.py ++++ b/setup.py +@@ -70,7 +70,7 @@ def get_version(): + else: + install_requires += [ + "Jinja2>=2.10.1", +- "mock", ++ "mock<=4.0.2", + "more-itertools", + "setuptools", + "zipp", Deleted: sdist-no-pyc.diff =================================================================== --- sdist-no-pyc.diff 2021-01-09 06:59:08 UTC (rev 815048) +++ sdist-no-pyc.diff 2021-01-09 06:59:17 UTC (rev 815049) @@ -1,9 +0,0 @@ -diff --git a/MANIFEST.in b/MANIFEST.in -index 51d1b223..30ca14c0 100644 ---- a/MANIFEST.in -+++ b/MANIFEST.in -@@ -6,3 +6,4 @@ include moto/cognitoidp/resources/*.json - include moto/dynamodb2/parsing/reserved_keywords.txt - recursive-include moto/templates * - recursive-include tests * -+global-exclude *.py[cod] Copied: python-moto/repos/community-any/sdist-no-pyc.diff (from rev 815048, python-moto/trunk/sdist-no-pyc.diff) =================================================================== --- sdist-no-pyc.diff (rev 0) +++ sdist-no-pyc.diff 2021-01-09 06:59:17 UTC (rev 815049) @@ -0,0 +1,9 @@ +diff --git a/MANIFEST.in b/MANIFEST.in +index 51d1b223..30ca14c0 100644 +--- a/MANIFEST.in ++++ b/MANIFEST.in +@@ -6,3 +6,4 @@ include moto/cognitoidp/resources/*.json + include moto/dynamodb2/parsing/reserved_keywords.txt + recursive-include moto/templates * + recursive-include tests * ++global-exclude *.py[cod]