File moto-pr3273-escape-sequences.patch of Package python-moto
From 0303022ce62ef47d5312d625258b1874fb9184a7 Mon Sep 17 00:00:00 2001
From: Karthikeyan Singaravelan <tir.karthi@gmail.com>
Date: Tue, 1 Sep 2020 13:00:26 +0000
Subject: [PATCH 1/2] Fix deprecation warnings due to invalid escape sequences.
---
moto/apigateway/urls.py | 4 ++--
moto/ec2instanceconnect/urls.py | 2 +-
moto/events/responses.py | 4 ++--
moto/managedblockchain/utils.py | 10 +++++-----
moto/rds/urls.py | 2 +-
moto/route53/urls.py | 16 ++++++++--------
moto/sqs/urls.py | 2 +-
tests/test_awslambda/test_lambda.py | 2 +-
tests/test_core/test_url_mapping.py | 8 ++++----
tests/test_ec2/test_key_pairs.py | 2 +-
tests/test_ec2/test_tags.py | 6 +++---
tests/test_sns/test_publishing.py | 4 ++--
tests/test_sns/test_publishing_boto3.py | 6 +++---
13 files changed, 34 insertions(+), 34 deletions(-)
diff --git a/moto/apigateway/urls.py b/moto/apigateway/urls.py
index cb48e225f..7e8de1398 100644
--- a/moto/apigateway/urls.py
+++ b/moto/apigateway/urls.py
@@ -15,9 +15,9 @@
"{0}/restapis/(?P<function_id>[^/]+)/deployments/(?P<deployment_id>[^/]+)/?$": APIGatewayResponse().individual_deployment,
"{0}/restapis/(?P<function_id>[^/]+)/resources/(?P<resource_id>[^/]+)/?$": APIGatewayResponse().resource_individual,
"{0}/restapis/(?P<function_id>[^/]+)/resources/(?P<resource_id>[^/]+)/methods/(?P<method_name>[^/]+)/?$": APIGatewayResponse().resource_methods,
- "{0}/restapis/(?P<function_id>[^/]+)/resources/(?P<resource_id>[^/]+)/methods/(?P<method_name>[^/]+)/responses/(?P<status_code>\d+)$": APIGatewayResponse().resource_method_responses,
+ r"{0}/restapis/(?P<function_id>[^/]+)/resources/(?P<resource_id>[^/]+)/methods/(?P<method_name>[^/]+)/responses/(?P<status_code>\d+)$": APIGatewayResponse().resource_method_responses,
"{0}/restapis/(?P<function_id>[^/]+)/resources/(?P<resource_id>[^/]+)/methods/(?P<method_name>[^/]+)/integration/?$": APIGatewayResponse().integrations,
- "{0}/restapis/(?P<function_id>[^/]+)/resources/(?P<resource_id>[^/]+)/methods/(?P<method_name>[^/]+)/integration/responses/(?P<status_code>\d+)/?$": APIGatewayResponse().integration_responses,
+ r"{0}/restapis/(?P<function_id>[^/]+)/resources/(?P<resource_id>[^/]+)/methods/(?P<method_name>[^/]+)/integration/responses/(?P<status_code>\d+)/?$": APIGatewayResponse().integration_responses,
"{0}/apikeys$": APIGatewayResponse().apikeys,
"{0}/apikeys/(?P<apikey>[^/]+)": APIGatewayResponse().apikey_individual,
"{0}/usageplans$": APIGatewayResponse().usage_plans,
diff --git a/moto/ec2instanceconnect/urls.py b/moto/ec2instanceconnect/urls.py
index e7078264f..d7b6b7ce4 100644
--- a/moto/ec2instanceconnect/urls.py
+++ b/moto/ec2instanceconnect/urls.py
@@ -1,6 +1,6 @@
from __future__ import unicode_literals
from .responses import Ec2InstanceConnectResponse
-url_bases = ["https?://ec2-instance-connect\.(.+)\.amazonaws\.com"]
+url_bases = [r"https?://ec2-instance-connect\.(.+)\.amazonaws\.com"]
url_paths = {"{0}/$": Ec2InstanceConnectResponse.dispatch}
diff --git a/moto/events/responses.py b/moto/events/responses.py
index 76c590e16..c4e49fc80 100644
--- a/moto/events/responses.py
+++ b/moto/events/responses.py
@@ -183,9 +183,9 @@ def put_rule(self):
if sched_exp:
if not (
- re.match("^cron\(.*\)", sched_exp)
+ re.match(r"^cron\(.*\)", sched_exp)
or re.match(
- "^rate\(\d*\s(minute|minutes|hour|hours|day|days)\)", sched_exp
+ r"^rate\(\d*\s(minute|minutes|hour|hours|day|days)\)", sched_exp
)
):
return self.error(
diff --git a/moto/managedblockchain/utils.py b/moto/managedblockchain/utils.py
index c8118619e..d0485829b 100644
--- a/moto/managedblockchain/utils.py
+++ b/moto/managedblockchain/utils.py
@@ -14,7 +14,7 @@ def region_from_managedblckchain_url(url):
def networkid_from_managedblockchain_url(full_url):
- id_search = re.search("\/n-[A-Z0-9]{26}", full_url, re.IGNORECASE)
+ id_search = re.search(r"\/n-[A-Z0-9]{26}", full_url, re.IGNORECASE)
return_id = None
if id_search:
return_id = id_search.group(0).replace("/", "")
@@ -28,7 +28,7 @@ def get_network_id():
def memberid_from_managedblockchain_url(full_url):
- id_search = re.search("\/m-[A-Z0-9]{26}", full_url, re.IGNORECASE)
+ id_search = re.search(r"\/m-[A-Z0-9]{26}", full_url, re.IGNORECASE)
return_id = None
if id_search:
return_id = id_search.group(0).replace("/", "")
@@ -42,7 +42,7 @@ def get_member_id():
def proposalid_from_managedblockchain_url(full_url):
- id_search = re.search("\/p-[A-Z0-9]{26}", full_url, re.IGNORECASE)
+ id_search = re.search(r"\/p-[A-Z0-9]{26}", full_url, re.IGNORECASE)
return_id = None
if id_search:
return_id = id_search.group(0).replace("/", "")
@@ -56,7 +56,7 @@ def get_proposal_id():
def invitationid_from_managedblockchain_url(full_url):
- id_search = re.search("\/in-[A-Z0-9]{26}", full_url, re.IGNORECASE)
+ id_search = re.search(r"\/in-[A-Z0-9]{26}", full_url, re.IGNORECASE)
return_id = None
if id_search:
return_id = id_search.group(0).replace("/", "")
@@ -107,7 +107,7 @@ def admin_password_ok(password):
def nodeid_from_managedblockchain_url(full_url):
- id_search = re.search("\/nd-[A-Z0-9]{26}", full_url, re.IGNORECASE)
+ id_search = re.search(r"\/nd-[A-Z0-9]{26}", full_url, re.IGNORECASE)
return_id = None
if id_search:
return_id = id_search.group(0).replace("/", "")
diff --git a/moto/rds/urls.py b/moto/rds/urls.py
index 9c7570167..86e6ec00b 100644
--- a/moto/rds/urls.py
+++ b/moto/rds/urls.py
@@ -1,6 +1,6 @@
from __future__ import unicode_literals
from .responses import RDSResponse
-url_bases = ["https?://rds(\..+)?.amazonaws.com"]
+url_bases = [r"https?://rds(\..+)?.amazonaws.com"]
url_paths = {"{0}/$": RDSResponse.dispatch}
diff --git a/moto/route53/urls.py b/moto/route53/urls.py
index a697d258a..c0fc93734 100644
--- a/moto/route53/urls.py
+++ b/moto/route53/urls.py
@@ -13,12 +13,12 @@ def tag_response2(*args, **kwargs):
url_paths = {
- "{0}/(?P<api_version>[\d_-]+)/hostedzone$": Route53().list_or_create_hostzone_response,
- "{0}/(?P<api_version>[\d_-]+)/hostedzone/(?P<zone_id>[^/]+)$": Route53().get_or_delete_hostzone_response,
- "{0}/(?P<api_version>[\d_-]+)/hostedzone/(?P<zone_id>[^/]+)/rrset/?$": Route53().rrset_response,
- "{0}/(?P<api_version>[\d_-]+)/hostedzonesbyname": Route53().list_hosted_zones_by_name_response,
- "{0}/(?P<api_version>[\d_-]+)/healthcheck": Route53().health_check_response,
- "{0}/(?P<api_version>[\d_-]+)/tags/healthcheck/(?P<zone_id>[^/]+)$": tag_response1,
- "{0}/(?P<api_version>[\d_-]+)/tags/hostedzone/(?P<zone_id>[^/]+)$": tag_response2,
- "{0}/(?P<api_version>[\d_-]+)/trafficpolicyinstances/*": Route53().not_implemented_response,
+ r"{0}/(?P<api_version>[\d_-]+)/hostedzone$": Route53().list_or_create_hostzone_response,
+ r"{0}/(?P<api_version>[\d_-]+)/hostedzone/(?P<zone_id>[^/]+)$": Route53().get_or_delete_hostzone_response,
+ r"{0}/(?P<api_version>[\d_-]+)/hostedzone/(?P<zone_id>[^/]+)/rrset/?$": Route53().rrset_response,
+ r"{0}/(?P<api_version>[\d_-]+)/hostedzonesbyname": Route53().list_hosted_zones_by_name_response,
+ r"{0}/(?P<api_version>[\d_-]+)/healthcheck": Route53().health_check_response,
+ r"{0}/(?P<api_version>[\d_-]+)/tags/healthcheck/(?P<zone_id>[^/]+)$": tag_response1,
+ r"{0}/(?P<api_version>[\d_-]+)/tags/hostedzone/(?P<zone_id>[^/]+)$": tag_response2,
+ r"{0}/(?P<api_version>[\d_-]+)/trafficpolicyinstances/*": Route53().not_implemented_response,
}
diff --git a/moto/sqs/urls.py b/moto/sqs/urls.py
index 3acf8591a..54fd44650 100644
--- a/moto/sqs/urls.py
+++ b/moto/sqs/urls.py
@@ -7,5 +7,5 @@
url_paths = {
"{0}/$": dispatch,
- "{0}/(?P<account_id>\d+)/(?P<queue_name>[a-zA-Z0-9\-_\.]+)": dispatch,
+ r"{0}/(?P<account_id>\d+)/(?P<queue_name>[a-zA-Z0-9\-_\.]+)": dispatch,
}
diff --git a/tests/test_awslambda/test_lambda.py b/tests/test_awslambda/test_lambda.py
index ca05d4aa4..f7e7b3c7e 100644
--- a/tests/test_awslambda/test_lambda.py
+++ b/tests/test_awslambda/test_lambda.py
@@ -1663,7 +1663,7 @@ def test_update_function_s3():
def test_create_function_with_invalid_arn():
err = create_invalid_lambda("test-iam-role")
err.exception.response["Error"]["Message"].should.equal(
- "1 validation error detected: Value 'test-iam-role' at 'role' failed to satisfy constraint: Member must satisfy regular expression pattern: arn:(aws[a-zA-Z-]*)?:iam::(\d{12}):role/?[a-zA-Z_0-9+=,.@\-_/]+"
+ r"1 validation error detected: Value 'test-iam-role' at 'role' failed to satisfy constraint: Member must satisfy regular expression pattern: arn:(aws[a-zA-Z-]*)?:iam::(\d{12}):role/?[a-zA-Z_0-9+=,.@\-_/]+"
)
diff --git a/tests/test_core/test_url_mapping.py b/tests/test_core/test_url_mapping.py
index 4dccc4f21..1f06e75e3 100644
--- a/tests/test_core/test_url_mapping.py
+++ b/tests/test_core/test_url_mapping.py
@@ -14,10 +14,10 @@ def test_flask_path_converting_simple():
def test_flask_path_converting_regex():
- convert_regex_to_flask_path("/(?P<key_name>[a-zA-Z0-9\-_]+)").should.equal(
- '/<regex("[a-zA-Z0-9\-_]+"):key_name>'
+ convert_regex_to_flask_path(r"/(?P<key_name>[a-zA-Z0-9\-_]+)").should.equal(
+ r'/<regex("[a-zA-Z0-9\-_]+"):key_name>'
)
- convert_regex_to_flask_path("(?P<account_id>\d+)/(?P<queue_name>.*)$").should.equal(
- '<regex("\d+"):account_id>/<regex(".*"):queue_name>'
+ convert_regex_to_flask_path(r"(?P<account_id>\d+)/(?P<queue_name>.*)$").should.equal(
+ r'<regex("\d+"):account_id>/<regex(".*"):queue_name>'
)
diff --git a/tests/test_ec2/test_key_pairs.py b/tests/test_ec2/test_key_pairs.py
index d632c2478..09982ac7a 100644
--- a/tests/test_ec2/test_key_pairs.py
+++ b/tests/test_ec2/test_key_pairs.py
@@ -16,7 +16,7 @@
RSA_PUBLIC_KEY_OPENSSH = b"""\
ssh-rsa \
AAAAB3NzaC1yc2EAAAADAQABAAABAQDusXfgTE4eBP50NglSzCSEGnIL6+cr6m3H\
-6cZANOQ+P1o/W4BdtcAL3sor4iGi7SOeJgo\8kweyMQrhrt6HaKGgromRiz37LQx\
+6cZANOQ+P1o/W4BdtcAL3sor4iGi7SOeJgo\\8kweyMQrhrt6HaKGgromRiz37LQx\
4YIAcBi4Zd023mO/V7Rc2Chh18mWgLSmA6ng+j37ip6452zxtv0jHAz9pJolbKBp\
JzbZlPN45ZCTk9ck0fSVHRl6VRSSPQcpqi65XpRf+35zNOCGCc1mAOOTmw59Q2a6\
A3t8mL7r91aM5q6QOQm219lctFM8O7HRJnDgmhGpnjRwE1LyKktWTbgFZ4SNWU2X\
diff --git a/tests/test_ec2/test_tags.py b/tests/test_ec2/test_tags.py
index 92ed18dd4..8480f8bc0 100644
--- a/tests/test_ec2/test_tags.py
+++ b/tests/test_ec2/test_tags.py
@@ -287,13 +287,13 @@ def test_get_all_tags_value_filter():
tags = conn.get_all_tags(filters={"value": "*some*value*"})
tags.should.have.length_of(3)
- tags = conn.get_all_tags(filters={"value": "*value\*"})
+ tags = conn.get_all_tags(filters={"value": r"*value\*"})
tags.should.have.length_of(1)
- tags = conn.get_all_tags(filters={"value": "*value\*\*"})
+ tags = conn.get_all_tags(filters={"value": r"*value\*\*"})
tags.should.have.length_of(1)
- tags = conn.get_all_tags(filters={"value": "*value\*\?"})
+ tags = conn.get_all_tags(filters={"value": r"*value\*\?"})
tags.should.have.length_of(1)
diff --git a/tests/test_sns/test_publishing.py b/tests/test_sns/test_publishing.py
index 30fa80f15..cc7dbb8d6 100644
--- a/tests/test_sns/test_publishing.py
+++ b/tests/test_sns/test_publishing.py
@@ -54,7 +54,7 @@ def test_publish_to_sqs():
"us-east-1",
)
acquired_message = re.sub(
- "\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
+ r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
"2015-01-01T12:00:00.000Z",
message.get_body(),
)
@@ -98,7 +98,7 @@ def test_publish_to_sqs_in_different_region():
)
acquired_message = re.sub(
- "\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
+ r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
"2015-01-01T12:00:00.000Z",
message.get_body(),
)
diff --git a/tests/test_sns/test_publishing_boto3.py b/tests/test_sns/test_publishing_boto3.py
index 99e7ae7a4..c84f19694 100644
--- a/tests/test_sns/test_publishing_boto3.py
+++ b/tests/test_sns/test_publishing_boto3.py
@@ -49,7 +49,7 @@ def test_publish_to_sqs():
messages = queue.receive_messages(MaxNumberOfMessages=1)
expected = MESSAGE_FROM_SQS_TEMPLATE % (message, published_message_id, "us-east-1")
acquired_message = re.sub(
- "\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
+ r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
"2015-01-01T12:00:00.000Z",
messages[0].body,
)
@@ -290,7 +290,7 @@ def test_publish_to_sqs_dump_json():
escaped = message.replace('"', '\\"')
expected = MESSAGE_FROM_SQS_TEMPLATE % (escaped, published_message_id, "us-east-1")
acquired_message = re.sub(
- "\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
+ r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
"2015-01-01T12:00:00.000Z",
messages[0].body,
)
@@ -323,7 +323,7 @@ def test_publish_to_sqs_in_different_region():
messages = queue.receive_messages(MaxNumberOfMessages=1)
expected = MESSAGE_FROM_SQS_TEMPLATE % (message, published_message_id, "us-west-1")
acquired_message = re.sub(
- "\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
+ r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z",
"2015-01-01T12:00:00.000Z",
messages[0].body,
)
From c8275dbcf338ce514b98acfcaf0b28f5669fd674 Mon Sep 17 00:00:00 2001
From: Karthikeyan Singaravelan <tir.karthi@gmail.com>
Date: Sun, 6 Sep 2020 05:05:13 +0000
Subject: [PATCH 2/2] Fix linter error.
---
tests/test_core/test_url_mapping.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tests/test_core/test_url_mapping.py b/tests/test_core/test_url_mapping.py
index 1f06e75e3..9d0632e05 100644
--- a/tests/test_core/test_url_mapping.py
+++ b/tests/test_core/test_url_mapping.py
@@ -18,6 +18,6 @@ def test_flask_path_converting_regex():
r'/<regex("[a-zA-Z0-9\-_]+"):key_name>'
)
- convert_regex_to_flask_path(r"(?P<account_id>\d+)/(?P<queue_name>.*)$").should.equal(
- r'<regex("\d+"):account_id>/<regex(".*"):queue_name>'
- )
+ convert_regex_to_flask_path(
+ r"(?P<account_id>\d+)/(?P<queue_name>.*)$"
+ ).should.equal(r'<regex("\d+"):account_id>/<regex(".*"):queue_name>')