diff options
author | Max BĂ©langer <aeromax@gmail.com> | 2018-10-25 21:48:58 (GMT) |
---|---|---|
committer | Victor Stinner <vstinner@redhat.com> | 2018-10-25 21:48:58 (GMT) |
commit | 6c83d9f4a72905d968418bef670bb3091d2744db (patch) | |
tree | 36e86ffe12d882014bed38909a417a6f713b2e93 /Lib/unittest | |
parent | 1770d1c5121ed6c64d7072875738f97e07eede8a (diff) | |
download | cpython-6c83d9f4a72905d968418bef670bb3091d2744db.zip cpython-6c83d9f4a72905d968418bef670bb3091d2744db.tar.gz cpython-6c83d9f4a72905d968418bef670bb3091d2744db.tar.bz2 |
bpo-35022: unittest.mock.MagicMock now also supports __fspath__ (GH-9960)
The MagicMock class supports many magic methods, but not __fspath__. To ease
testing with modules such as os.path, this function is now supported by default.
Diffstat (limited to 'Lib/unittest')
-rw-r--r-- | Lib/unittest/mock.py | 2 | ||||
-rw-r--r-- | Lib/unittest/test/testmock/testmagicmethods.py | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index 6b7f293..1a6c1a6 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -1713,6 +1713,7 @@ magic_methods = ( "complex int float index " "round trunc floor ceil " "bool next " + "fspath " ) numerics = ( @@ -1760,6 +1761,7 @@ _calculate_return_value = { '__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)}", } _return_values = { diff --git a/Lib/unittest/test/testmock/testmagicmethods.py b/Lib/unittest/test/testmock/testmagicmethods.py index 5ab9597..69dfe60 100644 --- a/Lib/unittest/test/testmock/testmagicmethods.py +++ b/Lib/unittest/test/testmock/testmagicmethods.py @@ -1,5 +1,6 @@ import math import unittest +import os import sys from unittest.mock import Mock, MagicMock, _magics @@ -293,6 +294,15 @@ class TestMockingMagicMethods(unittest.TestCase): # how to test __sizeof__ ? + def test_magic_methods_fspath(self): + mock = MagicMock() + expected_path = mock.__fspath__() + mock.reset_mock() + + self.assertEqual(os.fspath(mock), expected_path) + mock.__fspath__.assert_called_once() + + def test_magic_methods_and_spec(self): class Iterable(object): def __iter__(self): |