Skip to content

Commit a7a47ef

Browse files
Support empty restJson1 trait
1 parent 46975ec commit a7a47ef

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

packages/smithy-aws-core/src/smithy_aws_core/traits.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,15 @@ class RestJson1Trait(Trait, id=ShapeID("aws.protocols#restJson1")):
2626

2727
def __init__(self, value: DocumentValue | DynamicTrait = None):
2828
super().__init__(value)
29-
assert isinstance(self.document_value, Mapping)
29+
document_value = value or {}
30+
assert isinstance(document_value, Mapping)
3031

31-
http_versions = self.document_value["http"]
32+
http_versions = document_value.get("http", ["http/1.1"])
3233
assert isinstance(http_versions, Sequence)
3334
for val in http_versions:
3435
assert isinstance(val, str)
3536
object.__setattr__(self, "http", tuple(http_versions))
36-
event_stream_http_versions = self.document_value.get("eventStreamHttp")
37+
event_stream_http_versions = document_value.get("eventStreamHttp")
3738
if not event_stream_http_versions:
3839
object.__setattr__(self, "event_stream_http", self.http)
3940
else:
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
from smithy_aws_core.traits import RestJson1Trait
5+
6+
7+
def test_allows_empty_restjson1_value() -> None:
8+
trait = RestJson1Trait(None)
9+
assert trait.http == ("http/1.1",)

0 commit comments

Comments
 (0)