File tree 2 files changed +21
-2
lines changed
2 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -1123,12 +1123,13 @@ def to_dict(
1123
1123
):
1124
1124
output [cased_name ] = value .to_dict (casing , include_default_values )
1125
1125
elif meta .proto_type == TYPE_MAP :
1126
+ output_map = {** value }
1126
1127
for k in value :
1127
1128
if hasattr (value [k ], "to_dict" ):
1128
- value [k ] = value [k ].to_dict (casing , include_default_values )
1129
+ output_map [k ] = value [k ].to_dict (casing , include_default_values )
1129
1130
1130
1131
if value or include_default_values :
1131
- output [cased_name ] = value
1132
+ output [cased_name ] = output_map
1132
1133
elif (
1133
1134
value != self ._get_field_default (field_name )
1134
1135
or include_default_values
Original file line number Diff line number Diff line change
1
+ from tests .output_betterproto .mapmessage import (
2
+ Nested ,
3
+ Test ,
4
+ )
5
+
6
+
7
+ def test_mapmessage_to_dict_preserves_message ():
8
+ message = Test (
9
+ items = {
10
+ "test" : Nested (
11
+ count = 1 ,
12
+ )
13
+ }
14
+ )
15
+
16
+ message .to_dict ()
17
+
18
+ assert isinstance (message .items ["test" ], Nested ), "Wrong nested type after to_dict"
You can’t perform that action at this time.
0 commit comments