aws-durable-execution-sdk-python-testing 1.2.0__py3-none-any.whl → 1.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2025-present Amazon.com, Inc. or its affiliates.
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
- __version__ = "1.2.0"
4
+ __version__ = "1.2.1"
@@ -39,14 +39,22 @@ class Route:
39
39
  def from_string(cls, path: str) -> Route:
40
40
  """Create a Route from a string.
41
41
 
42
+ Each segment is URL-decoded; ``raw_path`` is preserved as the
43
+ original wire path. Splitting on ``/`` happens before decoding so
44
+ that an encoded ``%2F`` inside a captured value (e.g. an ARN that
45
+ contains ``/``) stays inside its segment instead of being treated
46
+ as a path separator.
47
+
42
48
  Args:
43
49
  path: The raw path string
44
50
 
45
51
  Returns:
46
- Route instance with parsed segments
52
+ Route instance with parsed, URL-decoded segments
47
53
  """
48
- # Remove leading/trailing slashes and split into segments
49
- segments = [s for s in path.strip("/").split("/") if s]
54
+ # Remove leading/trailing slashes, split on '/', then URL-decode each
55
+ # segment. Order matters: split on the literal '/' first so '%2F'-
56
+ # encoded slashes inside values don't act as separators.
57
+ segments = [unquote(s) for s in path.strip("/").split("/") if s]
50
58
  return cls(raw_path=path, segments=segments)
51
59
 
52
60
  def matches_pattern(self, pattern: list[str]) -> bool:
@@ -445,7 +453,7 @@ class CallbackSuccessRoute(BytesPayloadRoute):
445
453
  return cls(
446
454
  raw_path=route.raw_path,
447
455
  segments=route.segments,
448
- callback_id=unquote(route.segments[2]),
456
+ callback_id=route.segments[2],
449
457
  )
450
458
 
451
459
 
@@ -488,7 +496,7 @@ class CallbackFailureRoute(BytesPayloadRoute):
488
496
  return cls(
489
497
  raw_path=route.raw_path,
490
498
  segments=route.segments,
491
- callback_id=unquote(route.segments[2]),
499
+ callback_id=route.segments[2],
492
500
  )
493
501
 
494
502
 
@@ -531,7 +539,7 @@ class CallbackHeartbeatRoute(Route):
531
539
  return cls(
532
540
  raw_path=route.raw_path,
533
541
  segments=route.segments,
534
- callback_id=unquote(route.segments[2]),
542
+ callback_id=route.segments[2],
535
543
  )
536
544
 
537
545
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aws-durable-execution-sdk-python-testing
3
- Version: 1.2.0
3
+ Version: 1.2.1
4
4
  Summary: AWS Durable Execution Testing SDK for Python
5
5
  Project-URL: Documentation, https://github.com/aws/aws-durable-execution-sdk-python-testing#readme
6
6
  Project-URL: Issues, https://github.com/aws/aws-durable-execution-sdk-python-testing/issues
@@ -1,4 +1,4 @@
1
- aws_durable_execution_sdk_python_testing/__about__.py,sha256=PQWEqzylLD2U820VkLCmyPiye8vT-M9dJyxj5VqLjsM,137
1
+ aws_durable_execution_sdk_python_testing/__about__.py,sha256=JZrqCSb8juf621nWIpGb8MqwJ5sX9zUXmjBapJE-ZlU,137
2
2
  aws_durable_execution_sdk_python_testing/__init__.py,sha256=NJnSWv9wZndxH7C0lBDVyQ61uhT6i79m5Z_u-PJCVxg,578
3
3
  aws_durable_execution_sdk_python_testing/cli.py,sha256=LvduQB2oipKvuaJclIU3eQ806G0Gq5djVQlKPp0QpOg,18960
4
4
  aws_durable_execution_sdk_python_testing/client.py,sha256=1CFuUXBZIkM7YOWwlJu4OrcjrJSTk01-Zc3N75kYSR4,1682
@@ -41,12 +41,12 @@ aws_durable_execution_sdk_python_testing/web/__init__.py,sha256=S8pemv1lfMXK4Kp8
41
41
  aws_durable_execution_sdk_python_testing/web/errors.py,sha256=8elkOXggINFhmfRFSPqu3XvD0msiJ2gd5GD86o7pTQU,340
42
42
  aws_durable_execution_sdk_python_testing/web/handlers.py,sha256=5_r6zaoaPujnNJohXQ_iPbXJJCR7vPMJfDT_fXr-VjI,29523
43
43
  aws_durable_execution_sdk_python_testing/web/models.py,sha256=B4SKVcTculNsO4Qd53tqkPnwVxwguP5PjNgnWF7dp8o,8852
44
- aws_durable_execution_sdk_python_testing/web/routes.py,sha256=AU9fMhuR0HF9fltNZ6TZMNOueQc8wEeNyJqoBpMctm0,19466
44
+ aws_durable_execution_sdk_python_testing/web/routes.py,sha256=NTHngxMDvsr78v_VjBXAf-tfwzm8P4o_DgiANJGwVuA,19935
45
45
  aws_durable_execution_sdk_python_testing/web/serialization.py,sha256=qN6qJNgEYVqRQD9uhHupJVxyZfz4sc8KzIwxEqVIEcI,7747
46
46
  aws_durable_execution_sdk_python_testing/web/server.py,sha256=DQWwgyb_GKkHbFw_OYgPG1o7uIZ4-sG7F-GAUclLYu0,8853
47
- aws_durable_execution_sdk_python_testing-1.2.0.dist-info/METADATA,sha256=IuDBlYasIDs1Ijs1qnaYMAQ82-Dv1aQKYIYKXUZc0Oc,8921
48
- aws_durable_execution_sdk_python_testing-1.2.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
49
- aws_durable_execution_sdk_python_testing-1.2.0.dist-info/entry_points.txt,sha256=fMm3DMHWb7k4-PSseaQ-BjUxNV_3Z7RyJaDVSwqnkEo,87
50
- aws_durable_execution_sdk_python_testing-1.2.0.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
51
- aws_durable_execution_sdk_python_testing-1.2.0.dist-info/licenses/NOTICE,sha256=1CkO1kwu3Q_OHYTj-d-yiBJA_lNN73a4zSntavaD4oc,67
52
- aws_durable_execution_sdk_python_testing-1.2.0.dist-info/RECORD,,
47
+ aws_durable_execution_sdk_python_testing-1.2.1.dist-info/METADATA,sha256=5DDVFc5rG6KHHTIFJiwFgjDksf8ySxedvXMtybSYYCY,8921
48
+ aws_durable_execution_sdk_python_testing-1.2.1.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
49
+ aws_durable_execution_sdk_python_testing-1.2.1.dist-info/entry_points.txt,sha256=fMm3DMHWb7k4-PSseaQ-BjUxNV_3Z7RyJaDVSwqnkEo,87
50
+ aws_durable_execution_sdk_python_testing-1.2.1.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
51
+ aws_durable_execution_sdk_python_testing-1.2.1.dist-info/licenses/NOTICE,sha256=1CkO1kwu3Q_OHYTj-d-yiBJA_lNN73a4zSntavaD4oc,67
52
+ aws_durable_execution_sdk_python_testing-1.2.1.dist-info/RECORD,,