diff --git a/tests/snippets/strings.py b/tests/snippets/strings.py index ed5bfb9729..087fe26cb5 100644 --- a/tests/snippets/strings.py +++ b/tests/snippets/strings.py @@ -293,3 +293,6 @@ def try_mutate_str(): assert next(str_iter_reversed) == "1" assert next(str_iter_reversed, None) == None assert_raises(StopIteration, lambda: next(str_iter_reversed)) + +assert str.__rmod__('%i', 30) == NotImplemented +assert_raises(TypeError, lambda: str.__rmod__(30, '%i')) diff --git a/vm/src/obj/objstr.rs b/vm/src/obj/objstr.rs index ff609eaad5..4aa618c986 100644 --- a/vm/src/obj/objstr.rs +++ b/vm/src/obj/objstr.rs @@ -518,6 +518,11 @@ impl PyString { do_cformat(vm, format_string, values.clone()) } + #[pymethod(name = "__rmod__")] + fn rmod(&self, _values: PyObjectRef, vm: &VirtualMachine) -> PyResult { + Ok(vm.ctx.not_implemented()) + } + #[pymethod] fn format(vm: &VirtualMachine, args: PyFuncArgs) -> PyResult { if args.args.is_empty() {