From 1dceae9205ae3385cdafe368d8ef43bd753f2a34 Mon Sep 17 00:00:00 2001 From: ChJR Date: Fri, 16 Aug 2019 15:40:32 +0900 Subject: [PATCH] Add str.__rmod__() method. #190 (#1262) * Add str.__rmod__ method. * Add tests for str.__rmod__ method. * Improve test for str.__rmod__ method. * Change str.__rmod__ method return value type. * Format with rustfmt. * Remove not required code of str.__rmod__ method. * Improve with clippy. --- tests/snippets/strings.py | 3 +++ vm/src/obj/objstr.rs | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/tests/snippets/strings.py b/tests/snippets/strings.py index ed5bfb972..087fe26cb 100644 --- a/tests/snippets/strings.py +++ b/tests/snippets/strings.py @@ -293,3 +293,6 @@ assert next(str_iter_reversed) == "2" 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 15db1c47e..be83f2888 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() {