bpo-33855: Still more edits and minimal tests for IDLE (GH-7784)
Part 3 of 3, continuing PR GH-7689. This covers 14 idlelib modules and their tests,
rpc to zoomheight except for run (already done) and tooltip (being done separately).
(cherry picked from commit 4d92158f4c3917fc4fbfebff15224e74782abf79)
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py
index 8f57edb8..9962477 100644
--- a/Lib/idlelib/rpc.py
+++ b/Lib/idlelib/rpc.py
@@ -43,16 +43,20 @@
import types
def unpickle_code(ms):
+ "Return code object from marshal string ms."
co = marshal.loads(ms)
assert isinstance(co, types.CodeType)
return co
def pickle_code(co):
+ "Return unpickle function and tuple with marshalled co code object."
assert isinstance(co, types.CodeType)
ms = marshal.dumps(co)
return unpickle_code, (ms,)
def dumps(obj, protocol=None):
+ "Return pickled (or marshalled) string for obj."
+ # IDLE passes 'None' to select pickle.DEFAULT_PROTOCOL.
f = io.BytesIO()
p = CodePickler(f, protocol)
p.dump(obj)
@@ -625,3 +629,8 @@
sys.stdout.write(text)
sys.stdout.write("\n")
builtins._ = value
+
+
+if __name__ == '__main__':
+ from unittest import main
+ main('idlelib.idle_test.test_rpc', verbosity=2,)