소스 검색

Merge pull request #3412 from anandolee/3.4.x

Use keys() instead of iterkeys() to be python3 compatbile.
Jisi Liu 8 년 전
부모
커밋
eb6b3320a5
2개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      python/google/protobuf/internal/encoder.py
  2. 3 0
      python/google/protobuf/internal/message_test.py

+ 1 - 1
python/google/protobuf/internal/encoder.py

@@ -819,7 +819,7 @@ def MapEncoder(field_descriptor):
   encode_message = MessageEncoder(field_descriptor.number, False, False)
 
   def EncodeField(write, value, deterministic):
-    value_keys = sorted(value.iterkeys()) if deterministic else value.iterkeys()
+    value_keys = sorted(value.keys()) if deterministic else value.keys()
     for key in value_keys:
       entry_msg = message_type._concrete_class(key=key, value=value[key])
       encode_message(write, entry_msg, deterministic)

+ 3 - 0
python/google/protobuf/internal/message_test.py

@@ -166,6 +166,9 @@ class MessageTest(BaseTestCase):
       def __nonzero__(self):
         raise BadArgError()
 
+      def __bool__(self):
+        raise BadArgError()
+
     with self.assertRaises(BadArgError):
       golden_message.SerializeToString(deterministic=BadArg())