Issue #3751: str.rpartition would perform a left-partition when called with
a unicode argument.

will backport.
diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py
index 3590b8e..63279ec 100644
--- a/Lib/test/string_tests.py
+++ b/Lib/test/string_tests.py
@@ -1117,6 +1117,9 @@
         self.checkraises(ValueError, S, 'partition', '')
         self.checkraises(TypeError, S, 'partition', None)
 
+        # mixed use of str and unicode
+        self.assertEqual('a/b/c'.partition(u'/'), ('a', '/', 'b/c'))
+
     def test_rpartition(self):
 
         self.checkequal(('this is the rparti', 'ti', 'on method'),
@@ -1132,6 +1135,8 @@
         self.checkraises(ValueError, S, 'rpartition', '')
         self.checkraises(TypeError, S, 'rpartition', None)
 
+        # mixed use of str and unicode
+        self.assertEqual('a/b/c'.rpartition(u'/'), ('a/b', '/', 'c'))
 
 class MixinStrStringUserStringTest:
     # Additional tests for 8bit strings, i.e. str, UserString and