[Python-checkins] bpo-38169: Increase code coverage for SharedMemory and ShareableList (GH-16139)

Vinay Sharma webhook-mailer at python.org
Sun Jul 19 09:36:02 EDT 2020


https://github.com/python/cpython/commit/bfd0fbdc1352534b3c91b46dbae4285f5220acf4
commit: bfd0fbdc1352534b3c91b46dbae4285f5220acf4
branch: master
author: Vinay Sharma <vinay04sharma at icloud.com>
committer: GitHub <noreply at github.com>
date: 2020-07-19T22:35:52+09:00
summary:

bpo-38169: Increase code coverage for SharedMemory and ShareableList (GH-16139)

files:
A Misc/NEWS.d/next/Tests/2019-09-14-13-20-27.bpo-38169.hurq4B.rst
M Lib/test/_test_multiprocessing.py

diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
index 6b4679f82da73..bde102ae2e051 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -3768,6 +3768,18 @@ def test_shared_memory_basics(self):
         self.assertGreaterEqual(sms.size, 512)
         self.assertGreaterEqual(len(sms.buf), sms.size)
 
+        # Verify __repr__
+        self.assertIn(sms.name, str(sms))
+        self.assertIn(str(sms.size), str(sms))
+
+        # Test pickling
+        sms.buf[0:6] = b'pickle'
+        pickled_sms = pickle.dumps(sms)
+        sms2 = pickle.loads(pickled_sms)
+        self.assertEqual(sms.name, sms2.name)
+        self.assertEqual(sms.size, sms2.size)
+        self.assertEqual(bytes(sms.buf[0:6]), bytes(sms2.buf[0:6]), b'pickle')
+
         # Modify contents of shared memory segment through memoryview.
         sms.buf[0] = 42
         self.assertEqual(sms.buf[0], 42)
@@ -3975,6 +3987,23 @@ def test_shared_memory_ShareableList_basics(self):
         )
         self.addCleanup(sl.shm.unlink)
 
+        # Verify __repr__
+        self.assertIn(sl.shm.name, str(sl))
+        self.assertIn(str(list(sl)), str(sl))
+
+        # Index Out of Range (get)
+        with self.assertRaises(IndexError):
+            sl[7]
+
+        # Index Out of Range (set)
+        with self.assertRaises(IndexError):
+            sl[7] = 2
+
+        # Assign value without format change (str -> str)
+        current_format = sl._get_packing_format(0)
+        sl[0] = 'howdy'
+        self.assertEqual(current_format, sl._get_packing_format(0))
+
         # Verify attributes are readable.
         self.assertEqual(sl.format, '8s8sdqxxxxxx?xxxxxxxx?q')
 
diff --git a/Misc/NEWS.d/next/Tests/2019-09-14-13-20-27.bpo-38169.hurq4B.rst b/Misc/NEWS.d/next/Tests/2019-09-14-13-20-27.bpo-38169.hurq4B.rst
new file mode 100644
index 0000000000000..3972b9d440a87
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2019-09-14-13-20-27.bpo-38169.hurq4B.rst
@@ -0,0 +1 @@
+Increase code coverage for SharedMemory and ShareableList



More information about the Python-checkins mailing list