aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYury Selivanov <yury@magic.io>2018-11-20 14:12:57 -0500
committerYury Selivanov <yury@magic.io>2018-11-20 14:25:07 -0500
commit339d62fadafd0ab35a6394c2ad210b092704ce98 (patch)
treebeefe165fa14198e9ffcba18a8f29d920496909b
parent1d813dd4ad80a1faa64844d96da45ba68396ddef (diff)
downloadimmutables-339d62fadafd0ab35a6394c2ad210b092704ce98.tar.gz
immutables-339d62fadafd0ab35a6394c2ad210b092704ce98.zip
Make MapMutation unpickleable
-rw-r--r--immutables/map.py3
-rw-r--r--tests/test_map.py3
2 files changed, 6 insertions, 0 deletions
diff --git a/immutables/map.py b/immutables/map.py
index 73581ed..fc40ac8 100644
--- a/immutables/map.py
+++ b/immutables/map.py
@@ -722,6 +722,9 @@ class MapMutation:
def __len__(self):
return self.__count
+ def __reduce__(self):
+ raise TypeError("can't pickle {} objects".format(type(self).__name__))
+
def __hash__(self):
raise TypeError('unhashable type: {}'.format(type(self).__name__))
diff --git a/tests/test_map.py b/tests/test_map.py
index d7ee885..959e00c 100644
--- a/tests/test_map.py
+++ b/tests/test_map.py
@@ -1254,6 +1254,9 @@ class BaseMapTest:
self.assertTrue(isinstance(uh, self.Map))
self.assertEqual(h, uh)
+ with self.assertRaisesRegex(TypeError, "can't pickle"):
+ pickle.dumps(h.mutate())
+
class PyMapTest(BaseMapTest, unittest.TestCase):