BaseListProxy = MakeProxyType('BaseListProxy', (
- '__add__', '__contains__', '__delitem__', '__getitem__', '__len__',
- '__mul__', '__reversed__', '__rmul__', '__setitem__',
- 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove',
- 'reverse', 'sort', '__imul__'
+ '__add__', '__contains__', '__delitem__', '__getitem__', '__imul__',
+ '__len__', '__mul__', '__reversed__', '__rmul__', '__setitem__',
+ 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop',
+ 'remove', 'reverse', 'sort',
))
class ListProxy(BaseListProxy):
def __iadd__(self, value):
_BaseDictProxy = MakeProxyType('DictProxy', (
- '__contains__', '__delitem__', '__getitem__', '__iter__', '__len__',
- '__setitem__', 'clear', 'copy', 'get', 'items',
+ '__contains__', '__delitem__', '__getitem__', '__ior__', '__iter__',
+ '__len__', '__or__', '__reversed__', '__ror__',
+ '__setitem__', 'clear', 'copy', 'fromkeys', 'get', 'items',
'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'
))
_BaseDictProxy._method_to_typeid_ = {
'__iter__': 'Iterator',
}
class DictProxy(_BaseDictProxy):
- __class_getitem__ = classmethod(types.GenericAlias)
+ def __ior__(self, value):
+ self._callmethod('__ior__', (value,))
+ return self
+ __class_getitem__ = classmethod(types.GenericAlias)
ArrayProxy = MakeProxyType('ArrayProxy', (
'__len__', '__getitem__', '__setitem__'
case.assertEqual(obj[0], 5)
case.assertEqual(obj.count(5), 1)
case.assertEqual(obj.index(5), 0)
+ obj += [7]
+ case.assertIsInstance(obj, multiprocessing.managers.ListProxy)
+ case.assertListEqual(list(obj), [5, 7])
+ obj *= 2
+ case.assertIsInstance(obj, multiprocessing.managers.ListProxy)
+ case.assertListEqual(list(obj), [5, 7, 5, 7])
+ double_obj = obj * 2
+ case.assertIsInstance(double_obj, list)
+ case.assertListEqual(list(double_obj), [5, 7, 5, 7, 5, 7, 5, 7])
+ double_obj = 2 * obj
+ case.assertIsInstance(double_obj, list)
+ case.assertListEqual(list(double_obj), [5, 7, 5, 7, 5, 7, 5, 7])
+ copied_obj = obj.copy()
+ case.assertIsInstance(copied_obj, list)
+ case.assertListEqual(list(copied_obj), [5, 7, 5, 7])
+ obj.extend(double_obj + copied_obj)
obj.sort()
obj.reverse()
for x in obj:
pass
- case.assertEqual(len(obj), 1)
- case.assertEqual(obj.pop(0), 5)
+ case.assertEqual(len(obj), 16)
+ case.assertEqual(obj.pop(0), 7)
+ obj.clear()
+ case.assertEqual(len(obj), 0)
def test_list(self):
o = self.manager.list()
case.assertListEqual(list(obj.keys()), ['foo'])
case.assertListEqual(list(obj.values()), [5])
case.assertDictEqual(obj.copy(), {'foo': 5})
- case.assertTupleEqual(obj.popitem(), ('foo', 5))
+ obj |= {'bar': 6}
+ case.assertIsInstance(obj, multiprocessing.managers.DictProxy)
+ case.assertDictEqual(dict(obj), {'foo': 5, 'bar': 6})
+ x = reversed(obj)
+ case.assertIsInstance(x, type(iter([])))
+ case.assertListEqual(list(x), ['bar', 'foo'])
+ x = {'bar': 7, 'baz': 7} | obj
+ case.assertIsInstance(x, dict)
+ case.assertDictEqual(dict(x), {'foo': 5, 'bar': 6, 'baz': 7})
+ x = obj | {'bar': 7, 'baz': 7}
+ case.assertIsInstance(x, dict)
+ case.assertDictEqual(dict(x), {'foo': 5, 'bar': 7, 'baz': 7})
+ x = obj.fromkeys(['bar'], 6)
+ case.assertIsInstance(x, dict)
+ case.assertDictEqual(x, {'bar': 6})
+ x = obj.popitem()
+ case.assertIsInstance(x, tuple)
+ case.assertTupleEqual(x, ('bar', 6))
+ obj.setdefault('bar', 0)
+ obj.update({'bar': 7})
+ case.assertEqual(obj.pop('bar'), 7)
+ obj.clear()
+ case.assertEqual(len(obj), 0)
def test_dict(self):
o = self.manager.dict()