diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index 9fefd65f4..29bf87714 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -1002,8 +1002,6 @@ class TestEnum(unittest.TestCase): self.assertIn(e, SummerMonth) self.assertIs(type(e), SummerMonth) - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_subclassing(self): if isinstance(Name, Exception): raise Name diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py index 66f16f27e..71ef8f561 100644 --- a/Lib/test/test_pickle.py +++ b/Lib/test/test_pickle.py @@ -118,16 +118,6 @@ class PyPicklerTests(AbstractPickleTests, unittest.TestCase): def test_nested_names(self): # TODO: RUSTPYTHON, remove when this passes super().test_nested_names() # TODO: RUSTPYTHON, remove when this passes - # TODO: RUSTPYTHON, AssertionError - @unittest.expectedFailure - def test_newobj_generic(self): # TODO: RUSTPYTHON, remove when this passes - super().test_newobj_generic() # TODO: RUSTPYTHON, remove when this passes - - # TODO: RUSTPYTHON, TypeError: cannot pickle 'weakproxy' object - @unittest.expectedFailure - def test_newobj_proxies(self): # TODO: RUSTPYTHON, remove when this passes - super().test_newobj_proxies() # TODO: RUSTPYTHON, remove when this passes - def test_notimplemented(self): # TODO: RUSTPYTHON, remove when this passes super().test_notimplemented() # TODO: RUSTPYTHON, remove when this passes @@ -233,16 +223,6 @@ class InMemoryPickleTests(AbstractPickleTests, AbstractUnpickleTests, def test_nested_names(self): # TODO: RUSTPYTHON, remove when this passes super().test_nested_names() # TODO: RUSTPYTHON, remove when this passes - # TODO: RUSTPYTHON, AssertionError: 'hello' != '' : 'hello' is not a copy of '' - @unittest.expectedFailure - def test_newobj_generic(self): # TODO: RUSTPYTHON, remove when this passes - super().test_newobj_generic() # TODO: RUSTPYTHON, remove when this passes - - # TODO: RUSTPYTHON, TypeError: cannot pickle 'weakproxy' object - @unittest.expectedFailure - def test_newobj_proxies(self): # TODO: RUSTPYTHON, remove when this passes - super().test_newobj_proxies() # TODO: RUSTPYTHON, remove when this passes - def test_notimplemented(self): # TODO: RUSTPYTHON, remove when this passes super().test_notimplemented() # TODO: RUSTPYTHON, remove when this passes diff --git a/Lib/test/test_pickletools.py b/Lib/test/test_pickletools.py index 349e0cebd..44cd485f4 100644 --- a/Lib/test/test_pickletools.py +++ b/Lib/test/test_pickletools.py @@ -40,16 +40,6 @@ class OptimizedPickleTests(AbstractPickleTests, unittest.TestCase): def test_nested_names(self): # TODO: RUSTPYTHON, remove when this passes super().test_nested_names() - # TODO: RUSTPYTHON - @unittest.expectedFailure - def test_newobj_generic(self): # TODO: RUSTPYTHON, remove when this passes - super().test_newobj_generic() - - # TODO: RUSTPYTHON, TypeError: cannot pickle 'weakproxy' object - @unittest.expectedFailure - def test_newobj_proxies(self): # TODO: RUSTPYTHON, remove when this passes - super().test_newobj_proxies() - def test_notimplemented(self): # TODO: RUSTPYTHON, remove when this passes super().test_notimplemented() diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index a7c627800..bf7feb66f 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -2392,8 +2392,6 @@ class UnicodeTest(string_tests.CommonTest, s += "4" self.assertEqual(s, "3") - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_getnewargs(self): text = 'abc' args = text.__getnewargs__() diff --git a/vm/src/builtins/str.rs b/vm/src/builtins/str.rs index 36e7e61cd..a1dcddecb 100644 --- a/vm/src/builtins/str.rs +++ b/vm/src/builtins/str.rs @@ -1258,6 +1258,11 @@ impl PyStr { fn encode(zelf: PyRef, args: EncodeArgs, vm: &VirtualMachine) -> PyResult { encode_string(zelf, args.encoding, args.errors, vm) } + + #[pymethod(magic)] + fn getnewargs(zelf: PyRef, vm: &VirtualMachine) -> PyObjectRef { + (zelf.as_str(),).to_pyobject(vm) + } } impl PyStrRef {