git: 340b5df88cec - main - devel/py-moto: Update to 2.0.7
Po-Chuan Hsieh
sunpoet at FreeBSD.org
Tue May 18 19:32:11 UTC 2021
The branch main has been updated by sunpoet:
URL: https://cgit.FreeBSD.org/ports/commit/?id=340b5df88cec8766458f86c1b5e8e569916ef71c
commit 340b5df88cec8766458f86c1b5e8e569916ef71c
Author: Po-Chuan Hsieh <sunpoet at FreeBSD.org>
AuthorDate: 2021-05-18 19:28:19 +0000
Commit: Po-Chuan Hsieh <sunpoet at FreeBSD.org>
CommitDate: 2021-05-18 19:28:19 +0000
devel/py-moto: Update to 2.0.7
Changes: https://github.com/spulec/moto/blob/master/CHANGELOG.md
---
devel/py-moto/Makefile | 2 +-
devel/py-moto/distinfo | 6 +-
devel/py-moto/files/patch-werkzeug | 1449 ++++++++++++++++++++++++++++++++++++
3 files changed, 1453 insertions(+), 4 deletions(-)
diff --git a/devel/py-moto/Makefile b/devel/py-moto/Makefile
index 24269b9c9fcf..9a2a0cf271f6 100644
--- a/devel/py-moto/Makefile
+++ b/devel/py-moto/Makefile
@@ -1,7 +1,7 @@
# Created by: Po-Chuan Hsieh <sunpoet at FreeBSD.org>
PORTNAME= moto
-PORTVERSION= 2.0.6
+PORTVERSION= 2.0.7
CATEGORIES= devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/devel/py-moto/distinfo b/devel/py-moto/distinfo
index b89448fb21d0..3cd834c10361 100644
--- a/devel/py-moto/distinfo
+++ b/devel/py-moto/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1620405413
-SHA256 (moto-2.0.6.tar.gz) = 7982176837406cabb47a84785125d337b6df357ae92ae29423724d072764dd90
-SIZE (moto-2.0.6.tar.gz) = 1557871
+TIMESTAMP = 1621183214
+SHA256 (moto-2.0.7.tar.gz) = 4209ee3241df1160523a58a169d31d0c8aa10b7aa75894484de58cbfacf14523
+SIZE (moto-2.0.7.tar.gz) = 1565849
diff --git a/devel/py-moto/files/patch-werkzeug b/devel/py-moto/files/patch-werkzeug
new file mode 100644
index 000000000000..2bb855e12f10
--- /dev/null
+++ b/devel/py-moto/files/patch-werkzeug
@@ -0,0 +1,1449 @@
+Obtained from: https://github.com/spulec/moto/commit/9e3faf77844029649147471c930097c06bb13095
+
+--- moto/managedblockchain/exceptions.py.orig 2021-05-12 08:03:14 UTC
++++ moto/managedblockchain/exceptions.py
+@@ -1,9 +1,54 @@
+ from __future__ import unicode_literals
+-from moto.core.exceptions import RESTError
++from functools import wraps
++from werkzeug.exceptions import HTTPException
++from jinja2 import DictLoader, Environment
+
+
+-class ManagedBlockchainClientError(RESTError):
++ERROR_JSON_RESPONSE = """{
++ "message": "{{message}}"
++}
++"""
++
++
++def exception_handler(f):
++ @wraps(f)
++ def _wrapper(*args, **kwargs):
++ try:
++ return f(*args, **kwargs)
++ except ManagedBlockchainClientError as err:
++ return err.code, err.get_headers(), err.description
++
++ return _wrapper
++
++
++class ManagedBlockchainClientError(HTTPException):
+ code = 400
++
++ templates = {
++ "error": ERROR_JSON_RESPONSE,
++ }
++
++ def __init__(self, error_type, message, **kwargs):
++ super(HTTPException, self).__init__()
++ env = Environment(loader=DictLoader(self.templates))
++ self.error_type = error_type
++ self.message = message
++ self.description = env.get_template("error").render(
++ error_type=error_type, message=message, **kwargs
++ )
++
++ def get_headers(self, *args, **kwargs):
++ return [
++ ("Content-Type", "application/json"),
++ ("x-amzn-ErrorType", self.error_type),
++ ]
++
++ @property
++ def response(self):
++ return self.get_body()
++
++ def get_body(self, *args, **kwargs):
++ return self.description
+
+
+ class BadRequestException(ManagedBlockchainClientError):
+--- moto/managedblockchain/responses.py.orig 2021-05-12 08:03:14 UTC
++++ moto/managedblockchain/responses.py
+@@ -4,6 +4,7 @@ import json
+ from six.moves.urllib.parse import urlparse, parse_qs
+
+ from moto.core.responses import BaseResponse
++from .exceptions import exception_handler
+ from .models import managedblockchain_backends
+ from .utils import (
+ region_from_managedblckchain_url,
+@@ -21,6 +22,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ self.backend = backend
+
+ @classmethod
++ @exception_handler
+ def network_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -73,6 +75,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, json.dumps(response)
+
+ @classmethod
++ @exception_handler
+ def networkid_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -94,6 +97,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, response
+
+ @classmethod
++ @exception_handler
+ def proposal_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -139,6 +143,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, json.dumps(response)
+
+ @classmethod
++ @exception_handler
+ def proposalid_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -160,6 +165,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, response
+
+ @classmethod
++ @exception_handler
+ def proposal_votes_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -203,6 +209,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, ""
+
+ @classmethod
++ @exception_handler
+ def invitation_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -224,6 +231,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, response
+
+ @classmethod
++ @exception_handler
+ def invitationid_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -243,6 +251,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, ""
+
+ @classmethod
++ @exception_handler
+ def member_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -283,6 +292,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, json.dumps(response)
+
+ @classmethod
++ @exception_handler
+ def memberid_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -327,6 +337,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, ""
+
+ @classmethod
++ @exception_handler
+ def node_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+@@ -380,6 +391,7 @@ class ManagedBlockchainResponse(BaseResponse):
+ return 200, headers, json.dumps(response)
+
+ @classmethod
++ @exception_handler
+ def nodeid_response(clazz, request, full_url, headers):
+ region_name = region_from_managedblckchain_url(full_url)
+ response_instance = ManagedBlockchainResponse(
+--- requirements-dev.txt.orig 2021-05-12 08:03:14 UTC
++++ requirements-dev.txt
+@@ -7,7 +7,7 @@ coverage==4.5.4
+ flake8==3.7.8
+ boto>=2.45.0
+ prompt-toolkit==2.0.10 # 3.x is not available with python2
+-click==6.7
++click
+ inflection==0.3.1
+ lxml
+ packaging
+--- setup.py.orig 2021-05-12 08:03:14 UTC
++++ setup.py
+@@ -36,8 +36,7 @@ install_requires = [
+ "requests>=2.5",
+ "xmltodict",
+ "six>1.9",
+- # TODO: werkzeug 2.x currently breaks test_s3_server_post_without_content_length
+- "werkzeug<2.0.0",
++ "werkzeug",
+ "pytz",
+ "python-dateutil<3.0.0,>=2.1",
+ "responses>=0.9.0",
+--- tests/test_managedblockchain/test_managedblockchain_invitations.py.orig 2021-05-12 08:03:14 UTC
++++ tests/test_managedblockchain/test_managedblockchain_invitations.py
+@@ -1,8 +1,10 @@
+ from __future__ import unicode_literals
+
+ import boto3
++import pytest
+ import sure # noqa
+
++from botocore.exceptions import ClientError
+ from moto import mock_managedblockchain
+ from . import helpers
+
+@@ -136,6 +138,10 @@ def test_reject_invitation_badinvitation():
+ Vote="YES",
+ )
+
+- response = conn.reject_invitation.when.called_with(
+- InvitationId="in-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "InvitationId in-ABCDEFGHIJKLMNOP0123456789 not found.")
++ with pytest.raises(ClientError) as ex:
++ conn.reject_invitation(InvitationId="in-ABCDEFGHIJKLMNOP0123456789")
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain(
++ "InvitationId in-ABCDEFGHIJKLMNOP0123456789 not found."
++ )
+--- tests/test_managedblockchain/test_managedblockchain_members.py.orig 2021-05-12 08:03:14 UTC
++++ tests/test_managedblockchain/test_managedblockchain_members.py
+@@ -1,8 +1,10 @@
+ from __future__ import unicode_literals
+
+ import boto3
++import pytest
+ import sure # noqa
+
++from botocore.exceptions import ClientError, ParamValidationError
+ from moto import mock_managedblockchain
+ from . import helpers
+
+@@ -165,13 +167,17 @@ def test_create_another_member_withopts():
+ response["Member"]["Description"].should.equal("Test Member 2")
+
+ # Try to create member with already used invitation
+- response = conn.create_member.when.called_with(
+- InvitationId=invitation_id,
+- NetworkId=network_id,
+- MemberConfiguration=helpers.create_member_configuration(
+- "testmember2", "admin", "Admin12345", False, "Test Member 2 Duplicate"
+- ),
+- ).should.throw(Exception, "Invitation {0} not valid".format(invitation_id))
++ with pytest.raises(ClientError) as ex:
++ conn.create_member(
++ InvitationId=invitation_id,
++ NetworkId=network_id,
++ MemberConfiguration=helpers.create_member_configuration(
++ "testmember2", "admin", "Admin12345", False, "Test Member 2 Duplicate"
++ ),
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("InvalidRequestException")
++ err["Message"].should.contain("Invitation {0} not valid".format(invitation_id))
+
+ # Delete member 2
+ conn.delete_member(NetworkId=network_id, MemberId=member_id2)
+@@ -182,9 +188,11 @@ def test_create_another_member_withopts():
+ members.should.have.length_of(2)
+
+ # But cannot get
+- response = conn.get_member.when.called_with(
+- NetworkId=network_id, MemberId=member_id2,
+- ).should.throw(Exception, "Member {0} not found".format(member_id2))
++ with pytest.raises(ClientError) as ex:
++ conn.get_member(NetworkId=network_id, MemberId=member_id2)
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Member {0} not found".format(member_id2))
+
+ # Delete member 1
+ conn.delete_member(NetworkId=network_id, MemberId=member_id)
+@@ -362,13 +370,17 @@ def test_create_too_many_members():
+ )[0]
+
+ # Try to create one too many members
+- response = conn.create_member.when.called_with(
+- InvitationId=invitation_id,
+- NetworkId=network_id,
+- MemberConfiguration=helpers.create_member_configuration(
+- "testmember6", "admin", "Admin12345", False, "Test Member 6"
+- ),
+- ).should.throw(Exception, "is the maximum number of members allowed in a",)
++ with pytest.raises(ClientError) as ex:
++ conn.create_member(
++ InvitationId=invitation_id,
++ NetworkId=network_id,
++ MemberConfiguration=helpers.create_member_configuration(
++ "testmember6", "admin", "Admin12345", False, "Test Member 6"
++ ),
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceLimitExceededException")
++ err["Message"].should.contain("is the maximum number of members allowed in a")
+
+
+ @mock_managedblockchain
+@@ -409,17 +421,20 @@ def test_create_another_member_alreadyhave():
+ invitation_id = response["Invitations"][0]["InvitationId"]
+
+ # Should fail trying to create with same name
+- response = conn.create_member.when.called_with(
+- NetworkId=network_id,
+- InvitationId=invitation_id,
+- MemberConfiguration=helpers.create_member_configuration(
+- "testmember1", "admin", "Admin12345", False
+- ),
+- ).should.throw(
+- Exception,
++ with pytest.raises(ClientError) as ex:
++ conn.create_member(
++ NetworkId=network_id,
++ InvitationId=invitation_id,
++ MemberConfiguration=helpers.create_member_configuration(
++ "testmember1", "admin", "Admin12345", False
++ ),
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("InvalidRequestException")
++ err["Message"].should.contain(
+ "Member name {0} already exists in network {1}".format(
+ "testmember1", network_id
+- ),
++ )
+ )
+
+
+@@ -427,13 +442,17 @@ def test_create_another_member_alreadyhave():
+ def test_create_another_member_badnetwork():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.create_member.when.called_with(
+- NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
+- InvitationId="id-ABCDEFGHIJKLMNOP0123456789",
+- MemberConfiguration=helpers.create_member_configuration(
+- "testmember2", "admin", "Admin12345", False
+- ),
+- ).should.throw(Exception, "Network n-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.create_member(
++ NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
++ InvitationId="id-ABCDEFGHIJKLMNOP0123456789",
++ MemberConfiguration=helpers.create_member_configuration(
++ "testmember2", "admin", "Admin12345", False
++ ),
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Network n-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+@@ -451,13 +470,17 @@ def test_create_another_member_badinvitation():
+ )
+ network_id = response["NetworkId"]
+
+- response = conn.create_member.when.called_with(
+- NetworkId=network_id,
+- InvitationId="in-ABCDEFGHIJKLMNOP0123456789",
+- MemberConfiguration=helpers.create_member_configuration(
+- "testmember2", "admin", "Admin12345", False
+- ),
+- ).should.throw(Exception, "Invitation in-ABCDEFGHIJKLMNOP0123456789 not valid")
++ with pytest.raises(ClientError) as ex:
++ conn.create_member(
++ NetworkId=network_id,
++ InvitationId="in-ABCDEFGHIJKLMNOP0123456789",
++ MemberConfiguration=helpers.create_member_configuration(
++ "testmember2", "admin", "Admin12345", False
++ ),
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("InvalidRequestException")
++ err["Message"].should.contain("Invitation in-ABCDEFGHIJKLMNOP0123456789 not valid")
+
+
+ @mock_managedblockchain
+@@ -509,73 +532,97 @@ def test_create_another_member_adminpassword():
+ badadminpassmemberconf["FrameworkConfiguration"]["Fabric"][
+ "AdminPassword"
+ ] = "badap"
+- response = conn.create_member.when.called_with(
+- NetworkId=network_id,
+- InvitationId=invitation_id,
+- MemberConfiguration=badadminpassmemberconf,
+- ).should.throw(
+- Exception,
+- "Invalid length for parameter MemberConfiguration.FrameworkConfiguration.Fabric.AdminPassword",
++ with pytest.raises(ParamValidationError) as ex:
++ conn.create_member(
++ NetworkId=network_id,
++ InvitationId=invitation_id,
++ MemberConfiguration=badadminpassmemberconf,
++ )
++ err = ex.value
++ str(err).should.contain(
++ "Invalid length for parameter MemberConfiguration.FrameworkConfiguration.Fabric.AdminPassword"
+ )
+
+ # No uppercase or numbers
+ badadminpassmemberconf["FrameworkConfiguration"]["Fabric"][
+ "AdminPassword"
+ ] = "badadminpwd"
+- response = conn.create_member.when.called_with(
+- NetworkId=network_id,
+- InvitationId=invitation_id,
+- MemberConfiguration=badadminpassmemberconf,
+- ).should.throw(Exception, "Invalid request body")
++ with pytest.raises(ClientError) as ex:
++ conn.create_member(
++ NetworkId=network_id,
++ InvitationId=invitation_id,
++ MemberConfiguration=badadminpassmemberconf,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("BadRequestException")
++ err["Message"].should.contain("Invalid request body")
+
+ # No lowercase or numbers
+ badadminpassmemberconf["FrameworkConfiguration"]["Fabric"][
+ "AdminPassword"
+ ] = "BADADMINPWD"
+- response = conn.create_member.when.called_with(
+- NetworkId=network_id,
+- InvitationId=invitation_id,
+- MemberConfiguration=badadminpassmemberconf,
+- ).should.throw(Exception, "Invalid request body")
++ with pytest.raises(ClientError) as ex:
++ conn.create_member(
++ NetworkId=network_id,
++ InvitationId=invitation_id,
++ MemberConfiguration=badadminpassmemberconf,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("BadRequestException")
++ err["Message"].should.contain("Invalid request body")
+
+ # No numbers
+ badadminpassmemberconf["FrameworkConfiguration"]["Fabric"][
+ "AdminPassword"
+ ] = "badAdminpwd"
+- response = conn.create_member.when.called_with(
+- NetworkId=network_id,
+- InvitationId=invitation_id,
+- MemberConfiguration=badadminpassmemberconf,
+- ).should.throw(Exception, "Invalid request body")
++ with pytest.raises(ClientError) as ex:
++ conn.create_member(
++ NetworkId=network_id,
++ InvitationId=invitation_id,
++ MemberConfiguration=badadminpassmemberconf,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("BadRequestException")
++ err["Message"].should.contain("Invalid request body")
+
+ # Invalid character
+ badadminpassmemberconf["FrameworkConfiguration"]["Fabric"][
+ "AdminPassword"
+ ] = "badAdmin at pwd1"
+- response = conn.create_member.when.called_with(
+- NetworkId=network_id,
+- InvitationId=invitation_id,
+- MemberConfiguration=badadminpassmemberconf,
+- ).should.throw(Exception, "Invalid request body")
++ with pytest.raises(ClientError) as ex:
++ conn.create_member(
++ NetworkId=network_id,
++ InvitationId=invitation_id,
++ MemberConfiguration=badadminpassmemberconf,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("BadRequestException")
++ err["Message"].should.contain("Invalid request body")
+
+
+ @mock_managedblockchain
+ def test_list_members_badnetwork():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.list_members.when.called_with(
+- NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Network n-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.list_members(NetworkId="n-ABCDEFGHIJKLMNOP0123456789")
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Network n-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+ def test_get_member_badnetwork():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.get_member.when.called_with(
+- NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
+- MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Network n-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.get_member(
++ NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
++ MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Network n-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+@@ -593,19 +640,25 @@ def test_get_member_badmember():
+ )
+ network_id = response["NetworkId"]
+
+- response = conn.get_member.when.called_with(
+- NetworkId=network_id, MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Member m-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.get_member(NetworkId=network_id, MemberId="m-ABCDEFGHIJKLMNOP0123456789")
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Member m-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+ def test_delete_member_badnetwork():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.delete_member.when.called_with(
+- NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
+- MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Network n-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.delete_member(
++ NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
++ MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Network n-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+@@ -623,22 +676,30 @@ def test_delete_member_badmember():
+ )
+ network_id = response["NetworkId"]
+
+- response = conn.delete_member.when.called_with(
+- NetworkId=network_id, MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Member m-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.delete_member(
++ NetworkId=network_id, MemberId="m-ABCDEFGHIJKLMNOP0123456789"
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Member m-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+ def test_update_member_badnetwork():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.update_member.when.called_with(
+- NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
+- MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- LogPublishingConfiguration=helpers.default_memberconfiguration[
+- "LogPublishingConfiguration"
+- ],
+- ).should.throw(Exception, "Network n-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.update_member(
++ NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
++ MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ LogPublishingConfiguration=helpers.default_memberconfiguration[
++ "LogPublishingConfiguration"
++ ],
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Network n-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+@@ -656,10 +717,14 @@ def test_update_member_badmember():
+ )
+ network_id = response["NetworkId"]
+
+- response = conn.update_member.when.called_with(
+- NetworkId=network_id,
+- MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- LogPublishingConfiguration=helpers.default_memberconfiguration[
+- "LogPublishingConfiguration"
+- ],
+- ).should.throw(Exception, "Member m-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.update_member(
++ NetworkId=network_id,
++ MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ LogPublishingConfiguration=helpers.default_memberconfiguration[
++ "LogPublishingConfiguration"
++ ],
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Member m-ABCDEFGHIJKLMNOP0123456789 not found")
+--- tests/test_managedblockchain/test_managedblockchain_networks.py.orig 2021-05-12 08:03:14 UTC
++++ tests/test_managedblockchain/test_managedblockchain_networks.py
+@@ -1,8 +1,10 @@
+ from __future__ import unicode_literals
+
+ import boto3
++import pytest
+ import sure # noqa
+
++from botocore.exceptions import ClientError
+ from moto import mock_managedblockchain
+ from . import helpers
+
+@@ -68,31 +70,39 @@ def test_create_network_withopts():
+ def test_create_network_noframework():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.create_network.when.called_with(
+- Name="testnetwork1",
+- Description="Test Network 1",
+- Framework="HYPERLEDGER_VINYL",
+- FrameworkVersion="1.2",
+- FrameworkConfiguration=helpers.default_frameworkconfiguration,
+- VotingPolicy=helpers.default_votingpolicy,
+- MemberConfiguration=helpers.default_memberconfiguration,
+- ).should.throw(Exception, "Invalid request body")
++ with pytest.raises(ClientError) as ex:
++ conn.create_network(
++ Name="testnetwork1",
++ Description="Test Network 1",
++ Framework="HYPERLEDGER_VINYL",
++ FrameworkVersion="1.2",
++ FrameworkConfiguration=helpers.default_frameworkconfiguration,
++ VotingPolicy=helpers.default_votingpolicy,
++ MemberConfiguration=helpers.default_memberconfiguration,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("BadRequestException")
++ err["Message"].should.contain("Invalid request body")
+
+
+ @mock_managedblockchain
+ def test_create_network_badframeworkver():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.create_network.when.called_with(
+- Name="testnetwork1",
+- Description="Test Network 1",
+- Framework="HYPERLEDGER_FABRIC",
+- FrameworkVersion="1.X",
+- FrameworkConfiguration=helpers.default_frameworkconfiguration,
+- VotingPolicy=helpers.default_votingpolicy,
+- MemberConfiguration=helpers.default_memberconfiguration,
+- ).should.throw(
+- Exception, "Invalid version 1.X requested for framework HYPERLEDGER_FABRIC"
++ with pytest.raises(ClientError) as ex:
++ conn.create_network(
++ Name="testnetwork1",
++ Description="Test Network 1",
++ Framework="HYPERLEDGER_FABRIC",
++ FrameworkVersion="1.X",
++ FrameworkConfiguration=helpers.default_frameworkconfiguration,
++ VotingPolicy=helpers.default_votingpolicy,
++ MemberConfiguration=helpers.default_memberconfiguration,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("BadRequestException")
++ err["Message"].should.contain(
++ "Invalid version 1.X requested for framework HYPERLEDGER_FABRIC"
+ )
+
+
+@@ -102,21 +112,27 @@ def test_create_network_badedition():
+
+ frameworkconfiguration = {"Fabric": {"Edition": "SUPER"}}
+
+- response = conn.create_network.when.called_with(
+- Name="testnetwork1",
+- Description="Test Network 1",
+- Framework="HYPERLEDGER_FABRIC",
+- FrameworkVersion="1.2",
+- FrameworkConfiguration=frameworkconfiguration,
+- VotingPolicy=helpers.default_votingpolicy,
+- MemberConfiguration=helpers.default_memberconfiguration,
+- ).should.throw(Exception, "Invalid request body")
++ with pytest.raises(ClientError) as ex:
++ conn.create_network(
++ Name="testnetwork1",
++ Description="Test Network 1",
++ Framework="HYPERLEDGER_FABRIC",
++ FrameworkVersion="1.2",
++ FrameworkConfiguration=frameworkconfiguration,
++ VotingPolicy=helpers.default_votingpolicy,
++ MemberConfiguration=helpers.default_memberconfiguration,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("BadRequestException")
++ err["Message"].should.contain("Invalid request body")
+
+
+ @mock_managedblockchain
+ def test_get_network_badnetwork():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.get_network.when.called_with(
+- NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Network n-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.get_network(NetworkId="n-ABCDEFGHIJKLMNOP0123456789")
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Network n-ABCDEFGHIJKLMNOP0123456789 not found")
+--- tests/test_managedblockchain/test_managedblockchain_nodes.py.orig 2021-05-12 08:03:14 UTC
++++ tests/test_managedblockchain/test_managedblockchain_nodes.py
+@@ -1,8 +1,10 @@
+ from __future__ import unicode_literals
+
+ import boto3
++import pytest
+ import sure # noqa
+
++from botocore.exceptions import ClientError
+ from moto import mock_managedblockchain
+ from . import helpers
+
+@@ -76,9 +78,11 @@ def test_create_node():
+ helpers.node_id_exist_in_list(nodes, node_id).should.equal(True)
+
+ # But cannot get
+- response = conn.get_node.when.called_with(
+- NetworkId=network_id, MemberId=member_id, NodeId=node_id,
+- ).should.throw(Exception, "Node {0} not found".format(node_id))
++ with pytest.raises(ClientError) as ex:
++ conn.get_node(NetworkId=network_id, MemberId=member_id, NodeId=node_id)
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Node {0} not found".format(node_id))
+
+
+ @mock_managedblockchain
+@@ -145,9 +149,11 @@ def test_create_node_standard_edition():
+ conn.delete_member(NetworkId=network_id, MemberId=member_id)
+
+ # Should now be an exception
+- response = conn.list_nodes.when.called_with(
+- NetworkId=network_id, MemberId=member_id,
+- ).should.throw(Exception, "Member {0} not found".format(member_id))
++ with pytest.raises(ClientError) as ex:
++ conn.list_nodes(NetworkId=network_id, MemberId=member_id)
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Member {0} not found".format(member_id))
+
+
+ @mock_managedblockchain
+@@ -187,12 +193,16 @@ def test_create_too_many_nodes():
+ nodes.should.have.length_of(2)
+
+ # Try to create one too many nodes
+- response = conn.create_node.when.called_with(
+- NetworkId=network_id,
+- MemberId=member_id,
+- NodeConfiguration=helpers.default_nodeconfiguration,
+- ).should.throw(
+- Exception, "Maximum number of nodes exceeded in member {0}".format(member_id),
++ with pytest.raises(ClientError) as ex:
++ conn.create_node(
++ NetworkId=network_id,
++ MemberId=member_id,
++ NodeConfiguration=helpers.default_nodeconfiguration,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceLimitExceededException")
++ err["Message"].should.contain(
++ "Maximum number of nodes exceeded in member {0}".format(member_id)
+ )
+
+
+@@ -200,11 +210,15 @@ def test_create_too_many_nodes():
+ def test_create_node_badnetwork():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.create_node.when.called_with(
+- NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
+- MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- NodeConfiguration=helpers.default_nodeconfiguration,
+- ).should.throw(Exception, "Network n-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.create_node(
++ NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
++ MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ NodeConfiguration=helpers.default_nodeconfiguration,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Network n-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+@@ -222,11 +236,15 @@ def test_create_node_badmember():
+ )
+ network_id = response["NetworkId"]
+
+- response = conn.create_node.when.called_with(
+- NetworkId=network_id,
+- MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- NodeConfiguration=helpers.default_nodeconfiguration,
+- ).should.throw(Exception, "Member m-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.create_node(
++ NetworkId=network_id,
++ MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ NodeConfiguration=helpers.default_nodeconfiguration,
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Member m-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+@@ -248,36 +266,51 @@ def test_create_node_badnodeconfig():
+ # Incorrect instance type
+ logconfigbad = dict(helpers.default_nodeconfiguration)
+ logconfigbad["InstanceType"] = "foo"
+- response = conn.create_node.when.called_with(
+- NetworkId=network_id, MemberId=member_id, NodeConfiguration=logconfigbad,
+- ).should.throw(Exception, "Requested instance foo isn't supported.")
++ with pytest.raises(ClientError) as ex:
++ conn.create_node(
++ NetworkId=network_id, MemberId=member_id, NodeConfiguration=logconfigbad
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("InvalidRequestException")
++ err["Message"].should.contain("Requested instance foo isn't supported.")
+
+ # Incorrect instance type for edition
+ logconfigbad = dict(helpers.default_nodeconfiguration)
+ logconfigbad["InstanceType"] = "bc.t3.large"
+- response = conn.create_node.when.called_with(
+- NetworkId=network_id, MemberId=member_id, NodeConfiguration=logconfigbad,
+- ).should.throw(
+- Exception,
+- "Instance type bc.t3.large is not supported with STARTER Edition networks",
++ with pytest.raises(ClientError) as ex:
++ conn.create_node(
++ NetworkId=network_id, MemberId=member_id, NodeConfiguration=logconfigbad
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("InvalidRequestException")
++ err["Message"].should.contain(
++ "Instance type bc.t3.large is not supported with STARTER Edition networks."
+ )
+
+ # Incorrect availability zone
+ logconfigbad = dict(helpers.default_nodeconfiguration)
+ logconfigbad["AvailabilityZone"] = "us-east-11"
+- response = conn.create_node.when.called_with(
+- NetworkId=network_id, MemberId=member_id, NodeConfiguration=logconfigbad,
+- ).should.throw(Exception, "Availability Zone is not valid")
++ with pytest.raises(ClientError) as ex:
++ conn.create_node(
++ NetworkId=network_id, MemberId=member_id, NodeConfiguration=logconfigbad
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("InvalidRequestException")
++ err["Message"].should.contain("Availability Zone is not valid")
+
+
+ @mock_managedblockchain
+ def test_list_nodes_badnetwork():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.list_nodes.when.called_with(
+- NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
+- MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Network n-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.list_nodes(
++ NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
++ MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Network n-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+@@ -295,20 +328,28 @@ def test_list_nodes_badmember():
+ )
+ network_id = response["NetworkId"]
+
+- response = conn.list_nodes.when.called_with(
+- NetworkId=network_id, MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Member m-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.list_nodes(
++ NetworkId=network_id, MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Member m-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+ def test_get_node_badnetwork():
+ conn = boto3.client("managedblockchain", region_name="us-east-1")
+
+- response = conn.get_node.when.called_with(
+- NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
+- MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- NodeId="nd-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Network n-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.get_node(
++ NetworkId="n-ABCDEFGHIJKLMNOP0123456789",
++ MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ NodeId="nd-ABCDEFGHIJKLMNOP0123456789",
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Network n-ABCDEFGHIJKLMNOP0123456789 not found")
+
+
+ @mock_managedblockchain
+@@ -326,11 +367,15 @@ def test_get_node_badmember():
+ )
+ network_id = response["NetworkId"]
+
+- response = conn.get_node.when.called_with(
+- NetworkId=network_id,
+- MemberId="m-ABCDEFGHIJKLMNOP0123456789",
+- NodeId="nd-ABCDEFGHIJKLMNOP0123456789",
+- ).should.throw(Exception, "Member m-ABCDEFGHIJKLMNOP0123456789 not found")
++ with pytest.raises(ClientError) as ex:
++ conn.get_node(
++ NetworkId=network_id,
++ MemberId="m-ABCDEFGHIJKLMNOP0123456789",
++ NodeId="nd-ABCDEFGHIJKLMNOP0123456789",
++ )
++ err = ex.value.response["Error"]
++ err["Code"].should.equal("ResourceNotFoundException")
++ err["Message"].should.contain("Member m-ABCDEFGHIJKLMNOP0123456789 not found")
+
*** 511 LINES SKIPPED ***
More information about the dev-commits-ports-all
mailing list