diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py index ad6f46871..fe5d9b27d 100644 --- a/Lib/test/test_deque.py +++ b/Lib/test/test_deque.py @@ -833,8 +833,6 @@ class TestSubclass(unittest.TestCase): d.clear() self.assertEqual(len(d), 0) - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_copy_pickle(self): d = Deque('abc') diff --git a/vm/src/stdlib/collections.rs b/vm/src/stdlib/collections.rs index e41931592..f42e64d8f 100644 --- a/vm/src/stdlib/collections.rs +++ b/vm/src/stdlib/collections.rs @@ -174,12 +174,13 @@ mod _collections { #[pymethod(magic)] #[pymethod] - fn copy(&self) -> Self { - PyDeque { - deque: PyRwLock::new(self.borrow_deque().clone()), - maxlen: self.maxlen, - state: AtomicCell::new(self.state.load()), + fn copy(zelf: PyRef, vm: &VirtualMachine) -> PyResult> { + Self { + deque: PyRwLock::new(zelf.borrow_deque().clone()), + maxlen: zelf.maxlen, + state: AtomicCell::new(zelf.state.load()), } + .into_ref_with_type(vm, zelf.clone_class()) } #[pymethod]