diff -Nru mock-4.0.2.orig/mock/mock.py mock-4.0.2/mock/mock.py
--- mock-4.0.2.orig/mock/mock.py	2020-03-11 18:25:49.000000000 +0100
+++ mock-4.0.2/mock/mock.py	2020-10-28 09:55:01.308108855 +0100
@@ -762,8 +762,8 @@
                 self._mock_children[name] = value
 
         if self._mock_sealed and not hasattr(self, name):
-            mock_name = f'{self._extract_mock_name()}.{name}'
-            raise AttributeError(f'Cannot set {mock_name}')
+            mock_name = self._extract_mock_name() + '.' + name
+            raise AttributeError('Cannot set ' + mock_name)
 
         return object.__setattr__(self, name, value)
 
@@ -949,9 +949,9 @@
                                    [e if isinstance(e, Exception) else None
                                     for e in expected])
                 raise AssertionError(
-                    f'{problem}\n'
-                    f'Expected: {_CallList(calls)}'
-                    f'{self._calls_repr(prefix="Actual").rstrip(".")}'
+                    problem + '\n' +
+                    'Expected: ' + _CallList(calls) +
+                    self._calls_repr(prefix="Actual").rstrip(".")
                 ) from cause
             return
 
@@ -1036,7 +1036,7 @@
         """
         if not self.mock_calls:
             return ""
-        return f"\n{prefix}: {safe_repr(self.mock_calls)}."
+        return "\n" + prefix + ":" + safe_repr(self.mock_calls) + "."
 
 
 _MOCK_SIG = inspect.signature(NonCallableMock.__init__)
@@ -1616,7 +1616,7 @@
     """
     if type(target) is str:
         raise TypeError(
-            f"{target!r} must be the actual object to be patched, not a str"
+            "r% must be the actual object to be patched, not a str" % target
         )
     getter = lambda: target
     return _patch(
@@ -1980,7 +1980,7 @@
     '__hash__': lambda self: object.__hash__(self),
     '__str__': lambda self: object.__str__(self),
     '__sizeof__': lambda self: object.__sizeof__(self),
-    '__fspath__': lambda self: f"{type(self).__name__}/{self._extract_mock_name()}/{id(self)}",
+    '__fspath__': lambda self: type(self).__name__+'/'+self._extract_mock_name()+'/'+str(id(self)),
 }
 
 _return_values = {
@@ -2228,7 +2228,7 @@
         """
         self = _mock_self
         if self.await_count == 0:
-            msg = f"Expected {self._mock_name or 'mock'} to have been awaited."
+            msg = "Expected " + self._mock_name or 'mock' + " to have been awaited."
             raise AssertionError(msg)
 
     def assert_awaited_once(_mock_self):
@@ -2237,8 +2237,8 @@
         """
         self = _mock_self
         if not self.await_count == 1:
-            msg = (f"Expected {self._mock_name or 'mock'} to have been awaited once."
-                   f" Awaited {self.await_count} times.")
+            msg = ("Expected " + self._mock_name or 'mock' + " to have been awaited once." +
+                   " Awaited " self.await_count + " times.")
             raise AssertionError(msg)
 
     def assert_awaited_with(_mock_self, *args, **kwargs):
@@ -2248,7 +2248,7 @@
         self = _mock_self
         if self.await_args is None:
             expected = self._format_mock_call_signature(args, kwargs)
-            raise AssertionError(f'Expected await: {expected}\nNot awaited')
+            raise AssertionError('Expected await: ' + expected + '\n' + 'Not awaited')
 
         def _error_message():
             msg = self._format_mock_failure_message(args, kwargs, action='await')
@@ -2267,8 +2267,8 @@
         """
         self = _mock_self
         if not self.await_count == 1:
-            msg = (f"Expected {self._mock_name or 'mock'} to have been awaited once."
-                   f" Awaited {self.await_count} times.")
+            msg = ("Expected " + self._mock_name or 'mock' + " to have been awaited once." +
+                   " Awaited " + self.await_count + " times.")
             raise AssertionError(msg)
         return self.assert_awaited_with(*args, **kwargs)
 
@@ -2312,9 +2312,9 @@
                                    [e if isinstance(e, Exception) else None
                                     for e in expected])
                 raise AssertionError(
-                    f'{problem}\n'
-                    f'Expected: {_CallList(calls)}\n'
-                    f'Actual: {self.await_args_list}'
+                    problem + '\n' +
+                    'Expected: ' + _CallList(calls) + '\n' +
+                    'Actual: ' + self.await_args_list
                 ) from cause
             return
 
@@ -2337,8 +2337,8 @@
         """
         self = _mock_self
         if self.await_count != 0:
-            msg = (f"Expected {self._mock_name or 'mock'} to not have been awaited."
-                   f" Awaited {self.await_count} times.")
+            msg = ("Expected " + self._mock_name or 'mock' + " to not have been awaited." +
+                   " Awaited " + self.await_count + " times."
             raise AssertionError(msg)
 
     def reset_mock(self, *args, **kwargs):
